//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package org.jf.smali;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Stack;
import org.antlr.runtime.BaseRecognizer;
import org.antlr.runtime.BitSet;
import org.antlr.runtime.CommonToken;
import org.antlr.runtime.DFA;
import org.antlr.runtime.EarlyExitException;
import org.antlr.runtime.FailedPredicateException;
import org.antlr.runtime.IntStream;
import org.antlr.runtime.MismatchedSetException;
import org.antlr.runtime.NoViableAltException;
import org.antlr.runtime.Parser;
import org.antlr.runtime.ParserRuleReturnScope;
import org.antlr.runtime.RecognitionException;
import org.antlr.runtime.RecognizerSharedState;
import org.antlr.runtime.Token;
import org.antlr.runtime.TokenStream;
import org.antlr.runtime.tree.CommonTree;
import org.antlr.runtime.tree.CommonTreeAdaptor;
import org.antlr.runtime.tree.RewriteRuleSubtreeStream;
import org.antlr.runtime.tree.RewriteRuleTokenStream;
import org.antlr.runtime.tree.TreeAdaptor;
import org.jf.dexlib2.Opcodes;

public class smaliParser extends Parser {
    public static final String[] tokenNames = new String[]{"<invalid>", "<EOR>", "<DOWN>", "<UP>", "ACCESS_SPEC", "ANNOTATION_DIRECTIVE", "ANNOTATION_VISIBILITY", "ARRAY_DATA_DIRECTIVE", "ARRAY_TYPE_PREFIX", "ARROW", "AT", "BOOL_LITERAL", "BYTE_LITERAL", "CATCHALL_DIRECTIVE", "CATCH_DIRECTIVE", "CHAR_LITERAL", "CLASS_DESCRIPTOR", "CLASS_DIRECTIVE", "CLOSE_BRACE", "CLOSE_PAREN", "COLON", "COMMA", "DOTDOT", "DOUBLE_LITERAL", "DOUBLE_LITERAL_OR_ID", "END_ANNOTATION_DIRECTIVE", "END_ARRAY_DATA_DIRECTIVE", "END_FIELD_DIRECTIVE", "END_LOCAL_DIRECTIVE", "END_METHOD_DIRECTIVE", "END_PACKED_SWITCH_DIRECTIVE", "END_PARAMETER_DIRECTIVE", "END_SPARSE_SWITCH_DIRECTIVE", "END_SUBANNOTATION_DIRECTIVE", "ENUM_DIRECTIVE", "EPILOGUE_DIRECTIVE", "EQUAL", "FIELD_DIRECTIVE", "FIELD_OFFSET", "FLOAT_LITERAL", "FLOAT_LITERAL_OR_ID", "HIDDENAPI_RESTRICTION", "IMPLEMENTS_DIRECTIVE", "INLINE_INDEX", "INSTRUCTION_FORMAT10t", "INSTRUCTION_FORMAT10x", "INSTRUCTION_FORMAT10x_ODEX", "INSTRUCTION_FORMAT11n", "INSTRUCTION_FORMAT11x", "INSTRUCTION_FORMAT12x", "INSTRUCTION_FORMAT12x_OR_ID", "INSTRUCTION_FORMAT20bc", "INSTRUCTION_FORMAT20t", "INSTRUCTION_FORMAT21c_FIELD", "INSTRUCTION_FORMAT21c_FIELD_ODEX", "INSTRUCTION_FORMAT21c_METHOD_HANDLE", "INSTRUCTION_FORMAT21c_METHOD_TYPE", "INSTRUCTION_FORMAT21c_STRING", "INSTRUCTION_FORMAT21c_TYPE", "INSTRUCTION_FORMAT21ih", "INSTRUCTION_FORMAT21lh", "INSTRUCTION_FORMAT21s", "INSTRUCTION_FORMAT21t", "INSTRUCTION_FORMAT22b", "INSTRUCTION_FORMAT22c_FIELD", "INSTRUCTION_FORMAT22c_FIELD_ODEX", "INSTRUCTION_FORMAT22c_TYPE", "INSTRUCTION_FORMAT22cs_FIELD", "INSTRUCTION_FORMAT22s", "INSTRUCTION_FORMAT22s_OR_ID", "INSTRUCTION_FORMAT22t", "INSTRUCTION_FORMAT22x", "INSTRUCTION_FORMAT23x", "INSTRUCTION_FORMAT30t", "INSTRUCTION_FORMAT31c", "INSTRUCTION_FORMAT31i", "INSTRUCTION_FORMAT31i_OR_ID", "INSTRUCTION_FORMAT31t", "INSTRUCTION_FORMAT32x", "INSTRUCTION_FORMAT35c_CALL_SITE", "INSTRUCTION_FORMAT35c_METHOD", "INSTRUCTION_FORMAT35c_METHOD_ODEX", "INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE", "INSTRUCTION_FORMAT35c_TYPE", "INSTRUCTION_FORMAT35mi_METHOD", "INSTRUCTION_FORMAT35ms_METHOD", "INSTRUCTION_FORMAT3rc_CALL_SITE", "INSTRUCTION_FORMAT3rc_METHOD", "INSTRUCTION_FORMAT3rc_METHOD_ODEX", "INSTRUCTION_FORMAT3rc_TYPE", "INSTRUCTION_FORMAT3rmi_METHOD", "INSTRUCTION_FORMAT3rms_METHOD", "INSTRUCTION_FORMAT45cc_METHOD", "INSTRUCTION_FORMAT4rcc_METHOD", "INSTRUCTION_FORMAT51l", "INTEGER_LITERAL", "INVALID_TOKEN", "I_ACCESS_LIST", "I_ACCESS_OR_RESTRICTION_LIST", "I_ANNOTATION", "I_ANNOTATIONS", "I_ANNOTATION_ELEMENT", "I_ARRAY_ELEMENTS", "I_ARRAY_ELEMENT_SIZE", "I_CALL_SITE_EXTRA_ARGUMENTS", "I_CALL_SITE_REFERENCE", "I_CATCH", "I_CATCHALL", "I_CATCHES", "I_CLASS_DEF", "I_ENCODED_ARRAY", "I_ENCODED_ENUM", "I_ENCODED_FIELD", "I_ENCODED_METHOD", "I_ENCODED_METHOD_HANDLE", "I_END_LOCAL", "I_EPILOGUE", "I_FIELD", "I_FIELDS", "I_FIELD_INITIAL_VALUE", "I_FIELD_TYPE", "I_IMPLEMENTS", "I_LABEL", "I_LINE", "I_LOCAL", "I_LOCALS", "I_METHOD", "I_METHODS", "I_METHOD_PROTOTYPE", "I_METHOD_RETURN_TYPE", "I_ORDERED_METHOD_ITEMS", "I_PACKED_SWITCH_ELEMENTS", "I_PACKED_SWITCH_START_KEY", "I_PARAMETER", "I_PARAMETERS", "I_PARAMETER_NOT_SPECIFIED", "I_PROLOGUE", "I_REGISTERS", "I_REGISTER_LIST", "I_REGISTER_RANGE", "I_RESTART_LOCAL", "I_SOURCE", "I_SPARSE_SWITCH_ELEMENTS", "I_STATEMENT_ARRAY_DATA", "I_STATEMENT_FORMAT10t", "I_STATEMENT_FORMAT10x", "I_STATEMENT_FORMAT11n", "I_STATEMENT_FORMAT11x", "I_STATEMENT_FORMAT12x", "I_STATEMENT_FORMAT20bc", "I_STATEMENT_FORMAT20t", "I_STATEMENT_FORMAT21c_FIELD", "I_STATEMENT_FORMAT21c_METHOD_HANDLE", "I_STATEMENT_FORMAT21c_METHOD_TYPE", "I_STATEMENT_FORMAT21c_STRING", "I_STATEMENT_FORMAT21c_TYPE", "I_STATEMENT_FORMAT21ih", "I_STATEMENT_FORMAT21lh", "I_STATEMENT_FORMAT21s", "I_STATEMENT_FORMAT21t", "I_STATEMENT_FORMAT22b", "I_STATEMENT_FORMAT22c_FIELD", "I_STATEMENT_FORMAT22c_TYPE", "I_STATEMENT_FORMAT22s", "I_STATEMENT_FORMAT22t", "I_STATEMENT_FORMAT22x", "I_STATEMENT_FORMAT23x", "I_STATEMENT_FORMAT30t", "I_STATEMENT_FORMAT31c", "I_STATEMENT_FORMAT31i", "I_STATEMENT_FORMAT31t", "I_STATEMENT_FORMAT32x", "I_STATEMENT_FORMAT35c_CALL_SITE", "I_STATEMENT_FORMAT35c_METHOD", "I_STATEMENT_FORMAT35c_TYPE", "I_STATEMENT_FORMAT3rc_CALL_SITE", "I_STATEMENT_FORMAT3rc_METHOD", "I_STATEMENT_FORMAT3rc_TYPE", "I_STATEMENT_FORMAT45cc_METHOD", "I_STATEMENT_FORMAT4rcc_METHOD", "I_STATEMENT_FORMAT51l", "I_STATEMENT_PACKED_SWITCH", "I_STATEMENT_SPARSE_SWITCH", "I_SUBANNOTATION", "I_SUPER", "LINE_COMMENT", "LINE_DIRECTIVE", "LOCALS_DIRECTIVE", "LOCAL_DIRECTIVE", "LONG_LITERAL", "MEMBER_NAME", "METHOD_DIRECTIVE", "METHOD_HANDLE_TYPE_FIELD", "METHOD_HANDLE_TYPE_METHOD", "NEGATIVE_INTEGER_LITERAL", "NULL_LITERAL", "OPEN_BRACE", "OPEN_PAREN", "PACKED_SWITCH_DIRECTIVE", "PARAMETER_DIRECTIVE", "PARAM_LIST_OR_ID_PRIMITIVE_TYPE", "POSITIVE_INTEGER_LITERAL", "PRIMITIVE_TYPE", "PROLOGUE_DIRECTIVE", "REGISTER", "REGISTERS_DIRECTIVE", "RESTART_LOCAL_DIRECTIVE", "SHORT_LITERAL", "SIMPLE_NAME", "SOURCE_DIRECTIVE", "SPARSE_SWITCH_DIRECTIVE", "STRING_LITERAL", "SUBANNOTATION_DIRECTIVE", "SUPER_DIRECTIVE", "VERIFICATION_ERROR_TYPE", "VOID_TYPE", "VTABLE_INDEX", "WHITE_SPACE"};
    public static final int EOF = -1;
    public static final int ACCESS_SPEC = 4;
    public static final int ANNOTATION_DIRECTIVE = 5;
    public static final int ANNOTATION_VISIBILITY = 6;
    public static final int ARRAY_DATA_DIRECTIVE = 7;
    public static final int ARRAY_TYPE_PREFIX = 8;
    public static final int ARROW = 9;
    public static final int AT = 10;
    public static final int BOOL_LITERAL = 11;
    public static final int BYTE_LITERAL = 12;
    public static final int CATCHALL_DIRECTIVE = 13;
    public static final int CATCH_DIRECTIVE = 14;
    public static final int CHAR_LITERAL = 15;
    public static final int CLASS_DESCRIPTOR = 16;
    public static final int CLASS_DIRECTIVE = 17;
    public static final int CLOSE_BRACE = 18;
    public static final int CLOSE_PAREN = 19;
    public static final int COLON = 20;
    public static final int COMMA = 21;
    public static final int DOTDOT = 22;
    public static final int DOUBLE_LITERAL = 23;
    public static final int DOUBLE_LITERAL_OR_ID = 24;
    public static final int END_ANNOTATION_DIRECTIVE = 25;
    public static final int END_ARRAY_DATA_DIRECTIVE = 26;
    public static final int END_FIELD_DIRECTIVE = 27;
    public static final int END_LOCAL_DIRECTIVE = 28;
    public static final int END_METHOD_DIRECTIVE = 29;
    public static final int END_PACKED_SWITCH_DIRECTIVE = 30;
    public static final int END_PARAMETER_DIRECTIVE = 31;
    public static final int END_SPARSE_SWITCH_DIRECTIVE = 32;
    public static final int END_SUBANNOTATION_DIRECTIVE = 33;
    public static final int ENUM_DIRECTIVE = 34;
    public static final int EPILOGUE_DIRECTIVE = 35;
    public static final int EQUAL = 36;
    public static final int FIELD_DIRECTIVE = 37;
    public static final int FIELD_OFFSET = 38;
    public static final int FLOAT_LITERAL = 39;
    public static final int FLOAT_LITERAL_OR_ID = 40;
    public static final int HIDDENAPI_RESTRICTION = 41;
    public static final int IMPLEMENTS_DIRECTIVE = 42;
    public static final int INLINE_INDEX = 43;
    public static final int INSTRUCTION_FORMAT10t = 44;
    public static final int INSTRUCTION_FORMAT10x = 45;
    public static final int INSTRUCTION_FORMAT10x_ODEX = 46;
    public static final int INSTRUCTION_FORMAT11n = 47;
    public static final int INSTRUCTION_FORMAT11x = 48;
    public static final int INSTRUCTION_FORMAT12x = 49;
    public static final int INSTRUCTION_FORMAT12x_OR_ID = 50;
    public static final int INSTRUCTION_FORMAT20bc = 51;
    public static final int INSTRUCTION_FORMAT20t = 52;
    public static final int INSTRUCTION_FORMAT21c_FIELD = 53;
    public static final int INSTRUCTION_FORMAT21c_FIELD_ODEX = 54;
    public static final int INSTRUCTION_FORMAT21c_METHOD_HANDLE = 55;
    public static final int INSTRUCTION_FORMAT21c_METHOD_TYPE = 56;
    public static final int INSTRUCTION_FORMAT21c_STRING = 57;
    public static final int INSTRUCTION_FORMAT21c_TYPE = 58;
    public static final int INSTRUCTION_FORMAT21ih = 59;
    public static final int INSTRUCTION_FORMAT21lh = 60;
    public static final int INSTRUCTION_FORMAT21s = 61;
    public static final int INSTRUCTION_FORMAT21t = 62;
    public static final int INSTRUCTION_FORMAT22b = 63;
    public static final int INSTRUCTION_FORMAT22c_FIELD = 64;
    public static final int INSTRUCTION_FORMAT22c_FIELD_ODEX = 65;
    public static final int INSTRUCTION_FORMAT22c_TYPE = 66;
    public static final int INSTRUCTION_FORMAT22cs_FIELD = 67;
    public static final int INSTRUCTION_FORMAT22s = 68;
    public static final int INSTRUCTION_FORMAT22s_OR_ID = 69;
    public static final int INSTRUCTION_FORMAT22t = 70;
    public static final int INSTRUCTION_FORMAT22x = 71;
    public static final int INSTRUCTION_FORMAT23x = 72;
    public static final int INSTRUCTION_FORMAT30t = 73;
    public static final int INSTRUCTION_FORMAT31c = 74;
    public static final int INSTRUCTION_FORMAT31i = 75;
    public static final int INSTRUCTION_FORMAT31i_OR_ID = 76;
    public static final int INSTRUCTION_FORMAT31t = 77;
    public static final int INSTRUCTION_FORMAT32x = 78;
    public static final int INSTRUCTION_FORMAT35c_CALL_SITE = 79;
    public static final int INSTRUCTION_FORMAT35c_METHOD = 80;
    public static final int INSTRUCTION_FORMAT35c_METHOD_ODEX = 81;
    public static final int INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE = 82;
    public static final int INSTRUCTION_FORMAT35c_TYPE = 83;
    public static final int INSTRUCTION_FORMAT35mi_METHOD = 84;
    public static final int INSTRUCTION_FORMAT35ms_METHOD = 85;
    public static final int INSTRUCTION_FORMAT3rc_CALL_SITE = 86;
    public static final int INSTRUCTION_FORMAT3rc_METHOD = 87;
    public static final int INSTRUCTION_FORMAT3rc_METHOD_ODEX = 88;
    public static final int INSTRUCTION_FORMAT3rc_TYPE = 89;
    public static final int INSTRUCTION_FORMAT3rmi_METHOD = 90;
    public static final int INSTRUCTION_FORMAT3rms_METHOD = 91;
    public static final int INSTRUCTION_FORMAT45cc_METHOD = 92;
    public static final int INSTRUCTION_FORMAT4rcc_METHOD = 93;
    public static final int INSTRUCTION_FORMAT51l = 94;
    public static final int INTEGER_LITERAL = 95;
    public static final int INVALID_TOKEN = 96;
    public static final int I_ACCESS_LIST = 97;
    public static final int I_ACCESS_OR_RESTRICTION_LIST = 98;
    public static final int I_ANNOTATION = 99;
    public static final int I_ANNOTATIONS = 100;
    public static final int I_ANNOTATION_ELEMENT = 101;
    public static final int I_ARRAY_ELEMENTS = 102;
    public static final int I_ARRAY_ELEMENT_SIZE = 103;
    public static final int I_CALL_SITE_EXTRA_ARGUMENTS = 104;
    public static final int I_CALL_SITE_REFERENCE = 105;
    public static final int I_CATCH = 106;
    public static final int I_CATCHALL = 107;
    public static final int I_CATCHES = 108;
    public static final int I_CLASS_DEF = 109;
    public static final int I_ENCODED_ARRAY = 110;
    public static final int I_ENCODED_ENUM = 111;
    public static final int I_ENCODED_FIELD = 112;
    public static final int I_ENCODED_METHOD = 113;
    public static final int I_ENCODED_METHOD_HANDLE = 114;
    public static final int I_END_LOCAL = 115;
    public static final int I_EPILOGUE = 116;
    public static final int I_FIELD = 117;
    public static final int I_FIELDS = 118;
    public static final int I_FIELD_INITIAL_VALUE = 119;
    public static final int I_FIELD_TYPE = 120;
    public static final int I_IMPLEMENTS = 121;
    public static final int I_LABEL = 122;
    public static final int I_LINE = 123;
    public static final int I_LOCAL = 124;
    public static final int I_LOCALS = 125;
    public static final int I_METHOD = 126;
    public static final int I_METHODS = 127;
    public static final int I_METHOD_PROTOTYPE = 128;
    public static final int I_METHOD_RETURN_TYPE = 129;
    public static final int I_ORDERED_METHOD_ITEMS = 130;
    public static final int I_PACKED_SWITCH_ELEMENTS = 131;
    public static final int I_PACKED_SWITCH_START_KEY = 132;
    public static final int I_PARAMETER = 133;
    public static final int I_PARAMETERS = 134;
    public static final int I_PARAMETER_NOT_SPECIFIED = 135;
    public static final int I_PROLOGUE = 136;
    public static final int I_REGISTERS = 137;
    public static final int I_REGISTER_LIST = 138;
    public static final int I_REGISTER_RANGE = 139;
    public static final int I_RESTART_LOCAL = 140;
    public static final int I_SOURCE = 141;
    public static final int I_SPARSE_SWITCH_ELEMENTS = 142;
    public static final int I_STATEMENT_ARRAY_DATA = 143;
    public static final int I_STATEMENT_FORMAT10t = 144;
    public static final int I_STATEMENT_FORMAT10x = 145;
    public static final int I_STATEMENT_FORMAT11n = 146;
    public static final int I_STATEMENT_FORMAT11x = 147;
    public static final int I_STATEMENT_FORMAT12x = 148;
    public static final int I_STATEMENT_FORMAT20bc = 149;
    public static final int I_STATEMENT_FORMAT20t = 150;
    public static final int I_STATEMENT_FORMAT21c_FIELD = 151;
    public static final int I_STATEMENT_FORMAT21c_METHOD_HANDLE = 152;
    public static final int I_STATEMENT_FORMAT21c_METHOD_TYPE = 153;
    public static final int I_STATEMENT_FORMAT21c_STRING = 154;
    public static final int I_STATEMENT_FORMAT21c_TYPE = 155;
    public static final int I_STATEMENT_FORMAT21ih = 156;
    public static final int I_STATEMENT_FORMAT21lh = 157;
    public static final int I_STATEMENT_FORMAT21s = 158;
    public static final int I_STATEMENT_FORMAT21t = 159;
    public static final int I_STATEMENT_FORMAT22b = 160;
    public static final int I_STATEMENT_FORMAT22c_FIELD = 161;
    public static final int I_STATEMENT_FORMAT22c_TYPE = 162;
    public static final int I_STATEMENT_FORMAT22s = 163;
    public static final int I_STATEMENT_FORMAT22t = 164;
    public static final int I_STATEMENT_FORMAT22x = 165;
    public static final int I_STATEMENT_FORMAT23x = 166;
    public static final int I_STATEMENT_FORMAT30t = 167;
    public static final int I_STATEMENT_FORMAT31c = 168;
    public static final int I_STATEMENT_FORMAT31i = 169;
    public static final int I_STATEMENT_FORMAT31t = 170;
    public static final int I_STATEMENT_FORMAT32x = 171;
    public static final int I_STATEMENT_FORMAT35c_CALL_SITE = 172;
    public static final int I_STATEMENT_FORMAT35c_METHOD = 173;
    public static final int I_STATEMENT_FORMAT35c_TYPE = 174;
    public static final int I_STATEMENT_FORMAT3rc_CALL_SITE = 175;
    public static final int I_STATEMENT_FORMAT3rc_METHOD = 176;
    public static final int I_STATEMENT_FORMAT3rc_TYPE = 177;
    public static final int I_STATEMENT_FORMAT45cc_METHOD = 178;
    public static final int I_STATEMENT_FORMAT4rcc_METHOD = 179;
    public static final int I_STATEMENT_FORMAT51l = 180;
    public static final int I_STATEMENT_PACKED_SWITCH = 181;
    public static final int I_STATEMENT_SPARSE_SWITCH = 182;
    public static final int I_SUBANNOTATION = 183;
    public static final int I_SUPER = 184;
    public static final int LINE_COMMENT = 185;
    public static final int LINE_DIRECTIVE = 186;
    public static final int LOCALS_DIRECTIVE = 187;
    public static final int LOCAL_DIRECTIVE = 188;
    public static final int LONG_LITERAL = 189;
    public static final int MEMBER_NAME = 190;
    public static final int METHOD_DIRECTIVE = 191;
    public static final int METHOD_HANDLE_TYPE_FIELD = 192;
    public static final int METHOD_HANDLE_TYPE_METHOD = 193;
    public static final int NEGATIVE_INTEGER_LITERAL = 194;
    public static final int NULL_LITERAL = 195;
    public static final int OPEN_BRACE = 196;
    public static final int OPEN_PAREN = 197;
    public static final int PACKED_SWITCH_DIRECTIVE = 198;
    public static final int PARAMETER_DIRECTIVE = 199;
    public static final int PARAM_LIST_OR_ID_PRIMITIVE_TYPE = 200;
    public static final int POSITIVE_INTEGER_LITERAL = 201;
    public static final int PRIMITIVE_TYPE = 202;
    public static final int PROLOGUE_DIRECTIVE = 203;
    public static final int REGISTER = 204;
    public static final int REGISTERS_DIRECTIVE = 205;
    public static final int RESTART_LOCAL_DIRECTIVE = 206;
    public static final int SHORT_LITERAL = 207;
    public static final int SIMPLE_NAME = 208;
    public static final int SOURCE_DIRECTIVE = 209;
    public static final int SPARSE_SWITCH_DIRECTIVE = 210;
    public static final int STRING_LITERAL = 211;
    public static final int SUBANNOTATION_DIRECTIVE = 212;
    public static final int SUPER_DIRECTIVE = 213;
    public static final int VERIFICATION_ERROR_TYPE = 214;
    public static final int VOID_TYPE = 215;
    public static final int VTABLE_INDEX = 216;
    public static final int WHITE_SPACE = 217;
    protected TreeAdaptor adaptor;
    public static final int ERROR_CHANNEL = 100;
    private boolean verboseErrors;
    private boolean allowOdex;
    private int apiLevel;
    private Opcodes opcodes;
    protected Stack<smali_file_scope> smali_file_stack;
    protected Stack<statements_and_directives_scope> statements_and_directives_stack;
    protected DFA31 dfa31;
    protected DFA41 dfa41;
    protected DFA43 dfa43;
    static final String DFA31_eotS = "4\uffff";
    static final String DFA31_eofS = "4\uffff";
    static final String DFA31_minS = "\u0001\u00041\u0014\u0002\uffff";
    static final String DFA31_maxS = "\u0001×\u000bÅ\u0001È%Å\u0002\uffff";
    static final String DFA31_acceptS = "2\uffff\u0001\u0001\u0001\u0002";
    static final String DFA31_specialS = "4\uffff}>";
    static final String[] DFA31_transitionS = new String[]{"\u0001\u0002\u0001\uffff\u0001\u000f\u0004\uffff\u0001\t\f\uffff\u0001\b\u000f\uffff\u0001\u0007\u0001\u0003\u0002\uffff\u0001\u0012\u0001\u0013\u0001\u0014\u0001\uffff\u0001\u0015\u0001\uffff\u0001\u0016\u0002\uffff\u0001\u0017\u0001\u0018\u0001\u0019\u0001\u001a\u0001\u001b\u0001\u001c\u0003\uffff\u0001\u001d\u0001\uffff\u0001\u001e\u0001\u001f\u0001 \u0001!\u0001\uffff\u0001\"\u0001#\u0001\uffff\u0001$\u0003\uffff\u0001%\u0001&\u0001\uffff\u0001'\u0001(\u0001)\u0001*\u0001+\u0001,\u0001-\u0006\uffff\u0001.\u0001/\u00010_\uffff\u00011\u0001\uffff\u0001\u0010\u0001\u0011\u0001\u0006\u0001\n\u0004\uffff\u0001\f\u0001\u0005\u0001\r\u0001\uffff\u0001\u000b\u0003\uffff\u0001\u0001\u0005\uffff\u0001\u0004\u0001\u000e", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013\u0002\uffff\u0001\f", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "\u00012°\uffff\u00013", "", ""};
    static final short[] DFA31_eot = DFA.unpackEncodedString("4\uffff");
    static final short[] DFA31_eof = DFA.unpackEncodedString("4\uffff");
    static final char[] DFA31_min = DFA.unpackEncodedStringToUnsignedChars("\u0001\u00041\u0014\u0002\uffff");
    static final char[] DFA31_max = DFA.unpackEncodedStringToUnsignedChars("\u0001×\u000bÅ\u0001È%Å\u0002\uffff");
    static final short[] DFA31_accept = DFA.unpackEncodedString("2\uffff\u0001\u0001\u0001\u0002");
    static final short[] DFA31_special = DFA.unpackEncodedString("4\uffff}>");
    static final short[][] DFA31_transition;
    static final String DFA41_eotS = "9\uffff";
    static final String DFA41_eofS = "9\uffff";
    static final String DFA41_minS = "\u0001\u0004\u0001\u0005\u0001\u00101\u0014\u0001\uffff\u0001\u0004\u0001\t\u0002\uffff";
    static final String DFA41_maxS = "\u0001×\u0001Ò\u0001Ê\u000bÅ\u0001È%Å\u0001\uffff\u0001×\u0001\t\u0002\uffff";
    static final String DFA41_acceptS = "4\uffff\u0001\u0001\u0002\uffff\u0001\u0002\u0001\u0003";
    static final String DFA41_specialS = "9\uffff}>";
    static final String[] DFA41_transitionS;
    static final short[] DFA41_eot;
    static final short[] DFA41_eof;
    static final char[] DFA41_min;
    static final char[] DFA41_max;
    static final short[] DFA41_accept;
    static final short[] DFA41_special;
    static final short[][] DFA41_transition;
    static final String DFA43_eotS = "H\uffff";
    static final String DFA43_eofS = "H\uffff";
    static final String DFA43_minS = "\u0001\u0005E\uffff\u0001\u0000\u0001\uffff";
    static final String DFA43_maxS = "\u0001ÒE\uffff\u0001\u0000\u0001\uffff";
    static final String DFA43_acceptS = "\u0001\uffff\u0001\u0002E\uffff\u0001\u0001";
    static final String DFA43_specialS = "F\uffff\u0001\u0000\u0001\uffff}>";
    static final String[] DFA43_transitionS;
    static final short[] DFA43_eot;
    static final short[] DFA43_eof;
    static final char[] DFA43_min;
    static final char[] DFA43_max;
    static final short[] DFA43_accept;
    static final short[] DFA43_special;
    static final short[][] DFA43_transition;
    public static final BitSet FOLLOW_class_spec_in_smali_file1150;
    public static final BitSet FOLLOW_super_spec_in_smali_file1161;
    public static final BitSet FOLLOW_implements_spec_in_smali_file1169;
    public static final BitSet FOLLOW_source_spec_in_smali_file1178;
    public static final BitSet FOLLOW_method_in_smali_file1186;
    public static final BitSet FOLLOW_field_in_smali_file1192;
    public static final BitSet FOLLOW_annotation_in_smali_file1198;
    public static final BitSet FOLLOW_EOF_in_smali_file1209;
    public static final BitSet FOLLOW_CLASS_DIRECTIVE_in_class_spec1296;
    public static final BitSet FOLLOW_access_list_in_class_spec1298;
    public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_class_spec1300;
    public static final BitSet FOLLOW_SUPER_DIRECTIVE_in_super_spec1318;
    public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_super_spec1320;
    public static final BitSet FOLLOW_IMPLEMENTS_DIRECTIVE_in_implements_spec1339;
    public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_implements_spec1341;
    public static final BitSet FOLLOW_SOURCE_DIRECTIVE_in_source_spec1360;
    public static final BitSet FOLLOW_STRING_LITERAL_in_source_spec1362;
    public static final BitSet FOLLOW_ACCESS_SPEC_in_access_list1381;
    public static final BitSet FOLLOW_access_or_restriction_in_access_or_restriction_list1416;
    public static final BitSet FOLLOW_FIELD_DIRECTIVE_in_field1449;
    public static final BitSet FOLLOW_access_or_restriction_list_in_field1451;
    public static final BitSet FOLLOW_member_name_in_field1453;
    public static final BitSet FOLLOW_COLON_in_field1455;
    public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field1457;
    public static final BitSet FOLLOW_EQUAL_in_field1460;
    public static final BitSet FOLLOW_literal_in_field1462;
    public static final BitSet FOLLOW_annotation_in_field1475;
    public static final BitSet FOLLOW_END_FIELD_DIRECTIVE_in_field1489;
    public static final BitSet FOLLOW_METHOD_DIRECTIVE_in_method1600;
    public static final BitSet FOLLOW_access_or_restriction_list_in_method1602;
    public static final BitSet FOLLOW_member_name_in_method1604;
    public static final BitSet FOLLOW_method_prototype_in_method1606;
    public static final BitSet FOLLOW_statements_and_directives_in_method1608;
    public static final BitSet FOLLOW_END_METHOD_DIRECTIVE_in_method1614;
    public static final BitSet FOLLOW_ordered_method_item_in_statements_and_directives1659;
    public static final BitSet FOLLOW_registers_directive_in_statements_and_directives1667;
    public static final BitSet FOLLOW_catch_directive_in_statements_and_directives1675;
    public static final BitSet FOLLOW_catchall_directive_in_statements_and_directives1683;
    public static final BitSet FOLLOW_parameter_directive_in_statements_and_directives1691;
    public static final BitSet FOLLOW_annotation_in_statements_and_directives1699;
    public static final BitSet FOLLOW_label_in_ordered_method_item1784;
    public static final BitSet FOLLOW_instruction_in_ordered_method_item1790;
    public static final BitSet FOLLOW_debug_directive_in_ordered_method_item1796;
    public static final BitSet FOLLOW_REGISTERS_DIRECTIVE_in_registers_directive1816;
    public static final BitSet FOLLOW_integral_literal_in_registers_directive1820;
    public static final BitSet FOLLOW_LOCALS_DIRECTIVE_in_registers_directive1840;
    public static final BitSet FOLLOW_integral_literal_in_registers_directive1844;
    public static final BitSet FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id1876;
    public static final BitSet FOLLOW_SIMPLE_NAME_in_simple_name1889;
    public static final BitSet FOLLOW_ACCESS_SPEC_in_simple_name1895;
    public static final BitSet FOLLOW_HIDDENAPI_RESTRICTION_in_simple_name1906;
    public static final BitSet FOLLOW_VERIFICATION_ERROR_TYPE_in_simple_name1917;
    public static final BitSet FOLLOW_POSITIVE_INTEGER_LITERAL_in_simple_name1928;
    public static final BitSet FOLLOW_NEGATIVE_INTEGER_LITERAL_in_simple_name1939;
    public static final BitSet FOLLOW_FLOAT_LITERAL_OR_ID_in_simple_name1950;
    public static final BitSet FOLLOW_DOUBLE_LITERAL_OR_ID_in_simple_name1961;
    public static final BitSet FOLLOW_BOOL_LITERAL_in_simple_name1972;
    public static final BitSet FOLLOW_NULL_LITERAL_in_simple_name1983;
    public static final BitSet FOLLOW_REGISTER_in_simple_name1994;
    public static final BitSet FOLLOW_param_list_or_id_in_simple_name2005;
    public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_simple_name2015;
    public static final BitSet FOLLOW_VOID_TYPE_in_simple_name2026;
    public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_simple_name2037;
    public static final BitSet FOLLOW_METHOD_HANDLE_TYPE_FIELD_in_simple_name2048;
    public static final BitSet FOLLOW_METHOD_HANDLE_TYPE_METHOD_in_simple_name2054;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_simple_name2060;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_simple_name2071;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_simple_name2082;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_simple_name2093;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_simple_name2104;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_simple_name2115;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_simple_name2126;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_METHOD_HANDLE_in_simple_name2137;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_METHOD_TYPE_in_simple_name2148;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_simple_name2159;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_simple_name2170;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_simple_name2181;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_simple_name2192;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_simple_name2203;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_simple_name2214;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_simple_name2225;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_simple_name2236;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_simple_name2247;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_simple_name2258;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_simple_name2269;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_simple_name2280;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_CALL_SITE_in_simple_name2291;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_simple_name2302;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_simple_name2313;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE_in_simple_name2324;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_simple_name2335;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_simple_name2346;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_simple_name2357;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_simple_name2368;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_simple_name2379;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_simple_name2390;
    public static final BitSet FOLLOW_simple_name_in_member_name2405;
    public static final BitSet FOLLOW_MEMBER_NAME_in_member_name2411;
    public static final BitSet FOLLOW_OPEN_PAREN_in_method_prototype2426;
    public static final BitSet FOLLOW_param_list_in_method_prototype2428;
    public static final BitSet FOLLOW_CLOSE_PAREN_in_method_prototype2430;
    public static final BitSet FOLLOW_type_descriptor_in_method_prototype2432;
    public static final BitSet FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id_primitive_type2462;
    public static final BitSet FOLLOW_param_list_or_id_primitive_type_in_param_list2477;
    public static final BitSet FOLLOW_nonvoid_type_descriptor_in_param_list2484;
    public static final BitSet FOLLOW_ARRAY_TYPE_PREFIX_in_array_descriptor2495;
    public static final BitSet FOLLOW_set_in_array_descriptor2497;
    public static final BitSet FOLLOW_VOID_TYPE_in_type_descriptor2513;
    public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_type_descriptor2519;
    public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_type_descriptor2525;
    public static final BitSet FOLLOW_array_descriptor_in_type_descriptor2531;
    public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_nonvoid_type_descriptor2541;
    public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_nonvoid_type_descriptor2547;
    public static final BitSet FOLLOW_array_descriptor_in_nonvoid_type_descriptor2553;
    public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_reference_type_descriptor2563;
    public static final BitSet FOLLOW_array_descriptor_in_reference_type_descriptor2569;
    public static final BitSet FOLLOW_POSITIVE_INTEGER_LITERAL_in_integer_literal2579;
    public static final BitSet FOLLOW_NEGATIVE_INTEGER_LITERAL_in_integer_literal2590;
    public static final BitSet FOLLOW_FLOAT_LITERAL_OR_ID_in_float_literal2605;
    public static final BitSet FOLLOW_FLOAT_LITERAL_in_float_literal2616;
    public static final BitSet FOLLOW_DOUBLE_LITERAL_OR_ID_in_double_literal2626;
    public static final BitSet FOLLOW_DOUBLE_LITERAL_in_double_literal2637;
    public static final BitSet FOLLOW_LONG_LITERAL_in_literal2647;
    public static final BitSet FOLLOW_integer_literal_in_literal2653;
    public static final BitSet FOLLOW_SHORT_LITERAL_in_literal2659;
    public static final BitSet FOLLOW_BYTE_LITERAL_in_literal2665;
    public static final BitSet FOLLOW_float_literal_in_literal2671;
    public static final BitSet FOLLOW_double_literal_in_literal2677;
    public static final BitSet FOLLOW_CHAR_LITERAL_in_literal2683;
    public static final BitSet FOLLOW_STRING_LITERAL_in_literal2689;
    public static final BitSet FOLLOW_BOOL_LITERAL_in_literal2695;
    public static final BitSet FOLLOW_NULL_LITERAL_in_literal2701;
    public static final BitSet FOLLOW_array_literal_in_literal2707;
    public static final BitSet FOLLOW_subannotation_in_literal2713;
    public static final BitSet FOLLOW_type_field_method_literal_in_literal2719;
    public static final BitSet FOLLOW_enum_literal_in_literal2725;
    public static final BitSet FOLLOW_method_handle_literal_in_literal2731;
    public static final BitSet FOLLOW_method_prototype_in_literal2737;
    public static final BitSet FOLLOW_integer_literal_in_parsed_integer_literal2750;
    public static final BitSet FOLLOW_LONG_LITERAL_in_integral_literal2762;
    public static final BitSet FOLLOW_integer_literal_in_integral_literal2768;
    public static final BitSet FOLLOW_SHORT_LITERAL_in_integral_literal2774;
    public static final BitSet FOLLOW_CHAR_LITERAL_in_integral_literal2780;
    public static final BitSet FOLLOW_BYTE_LITERAL_in_integral_literal2786;
    public static final BitSet FOLLOW_LONG_LITERAL_in_fixed_32bit_literal2796;
    public static final BitSet FOLLOW_integer_literal_in_fixed_32bit_literal2802;
    public static final BitSet FOLLOW_SHORT_LITERAL_in_fixed_32bit_literal2808;
    public static final BitSet FOLLOW_BYTE_LITERAL_in_fixed_32bit_literal2814;
    public static final BitSet FOLLOW_float_literal_in_fixed_32bit_literal2820;
    public static final BitSet FOLLOW_CHAR_LITERAL_in_fixed_32bit_literal2826;
    public static final BitSet FOLLOW_BOOL_LITERAL_in_fixed_32bit_literal2832;
    public static final BitSet FOLLOW_integer_literal_in_fixed_literal2842;
    public static final BitSet FOLLOW_LONG_LITERAL_in_fixed_literal2848;
    public static final BitSet FOLLOW_SHORT_LITERAL_in_fixed_literal2854;
    public static final BitSet FOLLOW_BYTE_LITERAL_in_fixed_literal2860;
    public static final BitSet FOLLOW_float_literal_in_fixed_literal2866;
    public static final BitSet FOLLOW_double_literal_in_fixed_literal2872;
    public static final BitSet FOLLOW_CHAR_LITERAL_in_fixed_literal2878;
    public static final BitSet FOLLOW_BOOL_LITERAL_in_fixed_literal2884;
    public static final BitSet FOLLOW_OPEN_BRACE_in_array_literal2894;
    public static final BitSet FOLLOW_literal_in_array_literal2897;
    public static final BitSet FOLLOW_COMMA_in_array_literal2900;
    public static final BitSet FOLLOW_literal_in_array_literal2902;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_array_literal2910;
    public static final BitSet FOLLOW_simple_name_in_annotation_element2934;
    public static final BitSet FOLLOW_EQUAL_in_annotation_element2936;
    public static final BitSet FOLLOW_literal_in_annotation_element2938;
    public static final BitSet FOLLOW_ANNOTATION_DIRECTIVE_in_annotation2963;
    public static final BitSet FOLLOW_ANNOTATION_VISIBILITY_in_annotation2965;
    public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_annotation2967;
    public static final BitSet FOLLOW_annotation_element_in_annotation2973;
    public static final BitSet FOLLOW_END_ANNOTATION_DIRECTIVE_in_annotation2976;
    public static final BitSet FOLLOW_SUBANNOTATION_DIRECTIVE_in_subannotation3009;
    public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_subannotation3011;
    public static final BitSet FOLLOW_annotation_element_in_subannotation3013;
    public static final BitSet FOLLOW_END_SUBANNOTATION_DIRECTIVE_in_subannotation3016;
    public static final BitSet FOLLOW_ENUM_DIRECTIVE_in_enum_literal3043;
    public static final BitSet FOLLOW_field_reference_in_enum_literal3045;
    public static final BitSet FOLLOW_reference_type_descriptor_in_type_field_method_literal3065;
    public static final BitSet FOLLOW_reference_type_descriptor_in_type_field_method_literal3074;
    public static final BitSet FOLLOW_ARROW_in_type_field_method_literal3076;
    public static final BitSet FOLLOW_member_name_in_type_field_method_literal3088;
    public static final BitSet FOLLOW_COLON_in_type_field_method_literal3090;
    public static final BitSet FOLLOW_nonvoid_type_descriptor_in_type_field_method_literal3092;
    public static final BitSet FOLLOW_member_name_in_type_field_method_literal3115;
    public static final BitSet FOLLOW_method_prototype_in_type_field_method_literal3117;
    public static final BitSet FOLLOW_PRIMITIVE_TYPE_in_type_field_method_literal3150;
    public static final BitSet FOLLOW_VOID_TYPE_in_type_field_method_literal3156;
    public static final BitSet FOLLOW_simple_name_in_call_site_reference3166;
    public static final BitSet FOLLOW_OPEN_PAREN_in_call_site_reference3168;
    public static final BitSet FOLLOW_STRING_LITERAL_in_call_site_reference3170;
    public static final BitSet FOLLOW_COMMA_in_call_site_reference3172;
    public static final BitSet FOLLOW_method_prototype_in_call_site_reference3174;
    public static final BitSet FOLLOW_COMMA_in_call_site_reference3177;
    public static final BitSet FOLLOW_literal_in_call_site_reference3179;
    public static final BitSet FOLLOW_CLOSE_PAREN_in_call_site_reference3183;
    public static final BitSet FOLLOW_AT_in_call_site_reference3185;
    public static final BitSet FOLLOW_method_reference_in_call_site_reference3187;
    public static final BitSet FOLLOW_METHOD_HANDLE_TYPE_FIELD_in_method_handle_reference3231;
    public static final BitSet FOLLOW_AT_in_method_handle_reference3233;
    public static final BitSet FOLLOW_field_reference_in_method_handle_reference3235;
    public static final BitSet FOLLOW_METHOD_HANDLE_TYPE_METHOD_in_method_handle_reference3247;
    public static final BitSet FOLLOW_AT_in_method_handle_reference3249;
    public static final BitSet FOLLOW_method_reference_in_method_handle_reference3251;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE_in_method_handle_reference3263;
    public static final BitSet FOLLOW_AT_in_method_handle_reference3265;
    public static final BitSet FOLLOW_method_reference_in_method_handle_reference3267;
    public static final BitSet FOLLOW_method_handle_reference_in_method_handle_literal3283;
    public static final BitSet FOLLOW_reference_type_descriptor_in_method_reference3304;
    public static final BitSet FOLLOW_ARROW_in_method_reference3306;
    public static final BitSet FOLLOW_member_name_in_method_reference3310;
    public static final BitSet FOLLOW_method_prototype_in_method_reference3312;
    public static final BitSet FOLLOW_reference_type_descriptor_in_field_reference3334;
    public static final BitSet FOLLOW_ARROW_in_field_reference3336;
    public static final BitSet FOLLOW_member_name_in_field_reference3340;
    public static final BitSet FOLLOW_COLON_in_field_reference3342;
    public static final BitSet FOLLOW_nonvoid_type_descriptor_in_field_reference3344;
    public static final BitSet FOLLOW_COLON_in_label3365;
    public static final BitSet FOLLOW_simple_name_in_label3367;
    public static final BitSet FOLLOW_COLON_in_label_ref3386;
    public static final BitSet FOLLOW_simple_name_in_label_ref3388;
    public static final BitSet FOLLOW_REGISTER_in_register_list3402;
    public static final BitSet FOLLOW_COMMA_in_register_list3405;
    public static final BitSet FOLLOW_REGISTER_in_register_list3407;
    public static final BitSet FOLLOW_REGISTER_in_register_range3442;
    public static final BitSet FOLLOW_DOTDOT_in_register_range3445;
    public static final BitSet FOLLOW_REGISTER_in_register_range3449;
    public static final BitSet FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference3478;
    public static final BitSet FOLLOW_field_reference_in_verification_error_reference3482;
    public static final BitSet FOLLOW_method_reference_in_verification_error_reference3486;
    public static final BitSet FOLLOW_CATCH_DIRECTIVE_in_catch_directive3496;
    public static final BitSet FOLLOW_nonvoid_type_descriptor_in_catch_directive3498;
    public static final BitSet FOLLOW_OPEN_BRACE_in_catch_directive3500;
    public static final BitSet FOLLOW_label_ref_in_catch_directive3504;
    public static final BitSet FOLLOW_DOTDOT_in_catch_directive3506;
    public static final BitSet FOLLOW_label_ref_in_catch_directive3510;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_catch_directive3512;
    public static final BitSet FOLLOW_label_ref_in_catch_directive3516;
    public static final BitSet FOLLOW_CATCHALL_DIRECTIVE_in_catchall_directive3548;
    public static final BitSet FOLLOW_OPEN_BRACE_in_catchall_directive3550;
    public static final BitSet FOLLOW_label_ref_in_catchall_directive3554;
    public static final BitSet FOLLOW_DOTDOT_in_catchall_directive3556;
    public static final BitSet FOLLOW_label_ref_in_catchall_directive3560;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_catchall_directive3562;
    public static final BitSet FOLLOW_label_ref_in_catchall_directive3566;
    public static final BitSet FOLLOW_PARAMETER_DIRECTIVE_in_parameter_directive3605;
    public static final BitSet FOLLOW_REGISTER_in_parameter_directive3607;
    public static final BitSet FOLLOW_COMMA_in_parameter_directive3610;
    public static final BitSet FOLLOW_STRING_LITERAL_in_parameter_directive3612;
    public static final BitSet FOLLOW_annotation_in_parameter_directive3623;
    public static final BitSet FOLLOW_END_PARAMETER_DIRECTIVE_in_parameter_directive3636;
    public static final BitSet FOLLOW_line_directive_in_debug_directive3709;
    public static final BitSet FOLLOW_local_directive_in_debug_directive3715;
    public static final BitSet FOLLOW_end_local_directive_in_debug_directive3721;
    public static final BitSet FOLLOW_restart_local_directive_in_debug_directive3727;
    public static final BitSet FOLLOW_prologue_directive_in_debug_directive3733;
    public static final BitSet FOLLOW_epilogue_directive_in_debug_directive3739;
    public static final BitSet FOLLOW_source_directive_in_debug_directive3745;
    public static final BitSet FOLLOW_LINE_DIRECTIVE_in_line_directive3755;
    public static final BitSet FOLLOW_integral_literal_in_line_directive3757;
    public static final BitSet FOLLOW_LOCAL_DIRECTIVE_in_local_directive3780;
    public static final BitSet FOLLOW_REGISTER_in_local_directive3782;
    public static final BitSet FOLLOW_COMMA_in_local_directive3785;
    public static final BitSet FOLLOW_NULL_LITERAL_in_local_directive3788;
    public static final BitSet FOLLOW_STRING_LITERAL_in_local_directive3794;
    public static final BitSet FOLLOW_COLON_in_local_directive3797;
    public static final BitSet FOLLOW_VOID_TYPE_in_local_directive3800;
    public static final BitSet FOLLOW_nonvoid_type_descriptor_in_local_directive3804;
    public static final BitSet FOLLOW_COMMA_in_local_directive3838;
    public static final BitSet FOLLOW_STRING_LITERAL_in_local_directive3842;
    public static final BitSet FOLLOW_END_LOCAL_DIRECTIVE_in_end_local_directive3884;
    public static final BitSet FOLLOW_REGISTER_in_end_local_directive3886;
    public static final BitSet FOLLOW_RESTART_LOCAL_DIRECTIVE_in_restart_local_directive3909;
    public static final BitSet FOLLOW_REGISTER_in_restart_local_directive3911;
    public static final BitSet FOLLOW_PROLOGUE_DIRECTIVE_in_prologue_directive3934;
    public static final BitSet FOLLOW_EPILOGUE_DIRECTIVE_in_epilogue_directive3955;
    public static final BitSet FOLLOW_SOURCE_DIRECTIVE_in_source_directive3976;
    public static final BitSet FOLLOW_STRING_LITERAL_in_source_directive3978;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_in_instruction_format12x4003;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_instruction_format12x4009;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_in_instruction_format22s4024;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_instruction_format22s4030;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_in_instruction_format31i4045;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_instruction_format31i4051;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_instruction_format35c_method4068;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE_in_instruction_format35c_method4074;
    public static final BitSet FOLLOW_insn_format10t_in_instruction4089;
    public static final BitSet FOLLOW_insn_format10x_in_instruction4095;
    public static final BitSet FOLLOW_insn_format10x_odex_in_instruction4101;
    public static final BitSet FOLLOW_insn_format11n_in_instruction4107;
    public static final BitSet FOLLOW_insn_format11x_in_instruction4113;
    public static final BitSet FOLLOW_insn_format12x_in_instruction4119;
    public static final BitSet FOLLOW_insn_format20bc_in_instruction4125;
    public static final BitSet FOLLOW_insn_format20t_in_instruction4131;
    public static final BitSet FOLLOW_insn_format21c_field_in_instruction4137;
    public static final BitSet FOLLOW_insn_format21c_field_odex_in_instruction4143;
    public static final BitSet FOLLOW_insn_format21c_method_handle_in_instruction4149;
    public static final BitSet FOLLOW_insn_format21c_method_type_in_instruction4155;
    public static final BitSet FOLLOW_insn_format21c_string_in_instruction4161;
    public static final BitSet FOLLOW_insn_format21c_type_in_instruction4167;
    public static final BitSet FOLLOW_insn_format21ih_in_instruction4173;
    public static final BitSet FOLLOW_insn_format21lh_in_instruction4179;
    public static final BitSet FOLLOW_insn_format21s_in_instruction4185;
    public static final BitSet FOLLOW_insn_format21t_in_instruction4191;
    public static final BitSet FOLLOW_insn_format22b_in_instruction4197;
    public static final BitSet FOLLOW_insn_format22c_field_in_instruction4203;
    public static final BitSet FOLLOW_insn_format22c_field_odex_in_instruction4209;
    public static final BitSet FOLLOW_insn_format22c_type_in_instruction4215;
    public static final BitSet FOLLOW_insn_format22cs_field_in_instruction4221;
    public static final BitSet FOLLOW_insn_format22s_in_instruction4227;
    public static final BitSet FOLLOW_insn_format22t_in_instruction4233;
    public static final BitSet FOLLOW_insn_format22x_in_instruction4239;
    public static final BitSet FOLLOW_insn_format23x_in_instruction4245;
    public static final BitSet FOLLOW_insn_format30t_in_instruction4251;
    public static final BitSet FOLLOW_insn_format31c_in_instruction4257;
    public static final BitSet FOLLOW_insn_format31i_in_instruction4263;
    public static final BitSet FOLLOW_insn_format31t_in_instruction4269;
    public static final BitSet FOLLOW_insn_format32x_in_instruction4275;
    public static final BitSet FOLLOW_insn_format35c_call_site_in_instruction4281;
    public static final BitSet FOLLOW_insn_format35c_method_in_instruction4287;
    public static final BitSet FOLLOW_insn_format35c_type_in_instruction4293;
    public static final BitSet FOLLOW_insn_format35c_method_odex_in_instruction4299;
    public static final BitSet FOLLOW_insn_format35mi_method_in_instruction4305;
    public static final BitSet FOLLOW_insn_format35ms_method_in_instruction4311;
    public static final BitSet FOLLOW_insn_format3rc_call_site_in_instruction4317;
    public static final BitSet FOLLOW_insn_format3rc_method_in_instruction4323;
    public static final BitSet FOLLOW_insn_format3rc_method_odex_in_instruction4329;
    public static final BitSet FOLLOW_insn_format3rc_type_in_instruction4335;
    public static final BitSet FOLLOW_insn_format3rmi_method_in_instruction4341;
    public static final BitSet FOLLOW_insn_format3rms_method_in_instruction4347;
    public static final BitSet FOLLOW_insn_format45cc_method_in_instruction4353;
    public static final BitSet FOLLOW_insn_format4rcc_method_in_instruction4359;
    public static final BitSet FOLLOW_insn_format51l_in_instruction4365;
    public static final BitSet FOLLOW_insn_array_data_directive_in_instruction4371;
    public static final BitSet FOLLOW_insn_packed_switch_directive_in_instruction4377;
    public static final BitSet FOLLOW_insn_sparse_switch_directive_in_instruction4383;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t4403;
    public static final BitSet FOLLOW_label_ref_in_insn_format10t4405;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x4435;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_insn_format10x_odex4463;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n4484;
    public static final BitSet FOLLOW_REGISTER_in_insn_format11n4486;
    public static final BitSet FOLLOW_COMMA_in_insn_format11n4488;
    public static final BitSet FOLLOW_integral_literal_in_insn_format11n4490;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x4522;
    public static final BitSet FOLLOW_REGISTER_in_insn_format11x4524;
    public static final BitSet FOLLOW_instruction_format12x_in_insn_format12x4554;
    public static final BitSet FOLLOW_REGISTER_in_insn_format12x4556;
    public static final BitSet FOLLOW_COMMA_in_insn_format12x4558;
    public static final BitSet FOLLOW_REGISTER_in_insn_format12x4560;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc4592;
    public static final BitSet FOLLOW_VERIFICATION_ERROR_TYPE_in_insn_format20bc4594;
    public static final BitSet FOLLOW_COMMA_in_insn_format20bc4596;
    public static final BitSet FOLLOW_verification_error_reference_in_insn_format20bc4598;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t4635;
    public static final BitSet FOLLOW_label_ref_in_insn_format20t4637;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_insn_format21c_field4667;
    public static final BitSet FOLLOW_REGISTER_in_insn_format21c_field4669;
    public static final BitSet FOLLOW_COMMA_in_insn_format21c_field4671;
    public static final BitSet FOLLOW_field_reference_in_insn_format21c_field4673;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_insn_format21c_field_odex4705;
    public static final BitSet FOLLOW_REGISTER_in_insn_format21c_field_odex4707;
    public static final BitSet FOLLOW_COMMA_in_insn_format21c_field_odex4709;
    public static final BitSet FOLLOW_field_reference_in_insn_format21c_field_odex4711;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_METHOD_HANDLE_in_insn_format21c_method_handle4749;
    public static final BitSet FOLLOW_REGISTER_in_insn_format21c_method_handle4751;
    public static final BitSet FOLLOW_COMMA_in_insn_format21c_method_handle4753;
    public static final BitSet FOLLOW_method_handle_reference_in_insn_format21c_method_handle4755;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_METHOD_TYPE_in_insn_format21c_method_type4801;
    public static final BitSet FOLLOW_REGISTER_in_insn_format21c_method_type4803;
    public static final BitSet FOLLOW_COMMA_in_insn_format21c_method_type4805;
    public static final BitSet FOLLOW_method_prototype_in_insn_format21c_method_type4807;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string4851;
    public static final BitSet FOLLOW_REGISTER_in_insn_format21c_string4853;
    public static final BitSet FOLLOW_COMMA_in_insn_format21c_string4855;
    public static final BitSet FOLLOW_STRING_LITERAL_in_insn_format21c_string4857;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type4889;
    public static final BitSet FOLLOW_REGISTER_in_insn_format21c_type4891;
    public static final BitSet FOLLOW_COMMA_in_insn_format21c_type4893;
    public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type4895;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih4927;
    public static final BitSet FOLLOW_REGISTER_in_insn_format21ih4929;
    public static final BitSet FOLLOW_COMMA_in_insn_format21ih4931;
    public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format21ih4933;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh4965;
    public static final BitSet FOLLOW_REGISTER_in_insn_format21lh4967;
    public static final BitSet FOLLOW_COMMA_in_insn_format21lh4969;
    public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format21lh4971;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s5003;
    public static final BitSet FOLLOW_REGISTER_in_insn_format21s5005;
    public static final BitSet FOLLOW_COMMA_in_insn_format21s5007;
    public static final BitSet FOLLOW_integral_literal_in_insn_format21s5009;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t5041;
    public static final BitSet FOLLOW_REGISTER_in_insn_format21t5043;
    public static final BitSet FOLLOW_COMMA_in_insn_format21t5045;
    public static final BitSet FOLLOW_label_ref_in_insn_format21t5047;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b5079;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22b5081;
    public static final BitSet FOLLOW_COMMA_in_insn_format22b5083;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22b5085;
    public static final BitSet FOLLOW_COMMA_in_insn_format22b5087;
    public static final BitSet FOLLOW_integral_literal_in_insn_format22b5089;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_insn_format22c_field5123;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field5125;
    public static final BitSet FOLLOW_COMMA_in_insn_format22c_field5127;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field5129;
    public static final BitSet FOLLOW_COMMA_in_insn_format22c_field5131;
    public static final BitSet FOLLOW_field_reference_in_insn_format22c_field5133;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_insn_format22c_field_odex5167;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field_odex5169;
    public static final BitSet FOLLOW_COMMA_in_insn_format22c_field_odex5171;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22c_field_odex5173;
    public static final BitSet FOLLOW_COMMA_in_insn_format22c_field_odex5175;
    public static final BitSet FOLLOW_field_reference_in_insn_format22c_field_odex5177;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type5217;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type5219;
    public static final BitSet FOLLOW_COMMA_in_insn_format22c_type5221;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22c_type5223;
    public static final BitSet FOLLOW_COMMA_in_insn_format22c_type5225;
    public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type5227;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_insn_format22cs_field5261;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22cs_field5263;
    public static final BitSet FOLLOW_COMMA_in_insn_format22cs_field5265;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22cs_field5267;
    public static final BitSet FOLLOW_COMMA_in_insn_format22cs_field5269;
    public static final BitSet FOLLOW_FIELD_OFFSET_in_insn_format22cs_field5271;
    public static final BitSet FOLLOW_instruction_format22s_in_insn_format22s5292;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22s5294;
    public static final BitSet FOLLOW_COMMA_in_insn_format22s5296;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22s5298;
    public static final BitSet FOLLOW_COMMA_in_insn_format22s5300;
    public static final BitSet FOLLOW_integral_literal_in_insn_format22s5302;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t5336;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22t5338;
    public static final BitSet FOLLOW_COMMA_in_insn_format22t5340;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22t5342;
    public static final BitSet FOLLOW_COMMA_in_insn_format22t5344;
    public static final BitSet FOLLOW_label_ref_in_insn_format22t5346;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x5380;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22x5382;
    public static final BitSet FOLLOW_COMMA_in_insn_format22x5384;
    public static final BitSet FOLLOW_REGISTER_in_insn_format22x5386;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x5418;
    public static final BitSet FOLLOW_REGISTER_in_insn_format23x5420;
    public static final BitSet FOLLOW_COMMA_in_insn_format23x5422;
    public static final BitSet FOLLOW_REGISTER_in_insn_format23x5424;
    public static final BitSet FOLLOW_COMMA_in_insn_format23x5426;
    public static final BitSet FOLLOW_REGISTER_in_insn_format23x5428;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t5462;
    public static final BitSet FOLLOW_label_ref_in_insn_format30t5464;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c5494;
    public static final BitSet FOLLOW_REGISTER_in_insn_format31c5496;
    public static final BitSet FOLLOW_COMMA_in_insn_format31c5498;
    public static final BitSet FOLLOW_STRING_LITERAL_in_insn_format31c5500;
    public static final BitSet FOLLOW_instruction_format31i_in_insn_format31i5531;
    public static final BitSet FOLLOW_REGISTER_in_insn_format31i5533;
    public static final BitSet FOLLOW_COMMA_in_insn_format31i5535;
    public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_format31i5537;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t5569;
    public static final BitSet FOLLOW_REGISTER_in_insn_format31t5571;
    public static final BitSet FOLLOW_COMMA_in_insn_format31t5573;
    public static final BitSet FOLLOW_label_ref_in_insn_format31t5575;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x5607;
    public static final BitSet FOLLOW_REGISTER_in_insn_format32x5609;
    public static final BitSet FOLLOW_COMMA_in_insn_format32x5611;
    public static final BitSet FOLLOW_REGISTER_in_insn_format32x5613;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_CALL_SITE_in_insn_format35c_call_site5650;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_call_site5652;
    public static final BitSet FOLLOW_register_list_in_insn_format35c_call_site5654;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_call_site5656;
    public static final BitSet FOLLOW_COMMA_in_insn_format35c_call_site5658;
    public static final BitSet FOLLOW_call_site_reference_in_insn_format35c_call_site5660;
    public static final BitSet FOLLOW_instruction_format35c_method_in_insn_format35c_method5692;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_method5694;
    public static final BitSet FOLLOW_register_list_in_insn_format35c_method5696;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_method5698;
    public static final BitSet FOLLOW_COMMA_in_insn_format35c_method5700;
    public static final BitSet FOLLOW_method_reference_in_insn_format35c_method5702;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type5734;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_type5736;
    public static final BitSet FOLLOW_register_list_in_insn_format35c_type5738;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_type5740;
    public static final BitSet FOLLOW_COMMA_in_insn_format35c_type5742;
    public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type5744;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_insn_format35c_method_odex5776;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35c_method_odex5778;
    public static final BitSet FOLLOW_register_list_in_insn_format35c_method_odex5780;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35c_method_odex5782;
    public static final BitSet FOLLOW_COMMA_in_insn_format35c_method_odex5784;
    public static final BitSet FOLLOW_method_reference_in_insn_format35c_method_odex5786;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_insn_format35mi_method5807;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35mi_method5809;
    public static final BitSet FOLLOW_register_list_in_insn_format35mi_method5811;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35mi_method5813;
    public static final BitSet FOLLOW_COMMA_in_insn_format35mi_method5815;
    public static final BitSet FOLLOW_INLINE_INDEX_in_insn_format35mi_method5817;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_insn_format35ms_method5838;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format35ms_method5840;
    public static final BitSet FOLLOW_register_list_in_insn_format35ms_method5842;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format35ms_method5844;
    public static final BitSet FOLLOW_COMMA_in_insn_format35ms_method5846;
    public static final BitSet FOLLOW_VTABLE_INDEX_in_insn_format35ms_method5848;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_CALL_SITE_in_insn_format3rc_call_site5874;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_call_site5876;
    public static final BitSet FOLLOW_register_range_in_insn_format3rc_call_site5878;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_call_site5880;
    public static final BitSet FOLLOW_COMMA_in_insn_format3rc_call_site5882;
    public static final BitSet FOLLOW_call_site_reference_in_insn_format3rc_call_site5884;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method5916;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_method5918;
    public static final BitSet FOLLOW_register_range_in_insn_format3rc_method5920;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_method5922;
    public static final BitSet FOLLOW_COMMA_in_insn_format3rc_method5924;
    public static final BitSet FOLLOW_method_reference_in_insn_format3rc_method5926;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_ODEX_in_insn_format3rc_method_odex5958;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_method_odex5960;
    public static final BitSet FOLLOW_register_list_in_insn_format3rc_method_odex5962;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_method_odex5964;
    public static final BitSet FOLLOW_COMMA_in_insn_format3rc_method_odex5966;
    public static final BitSet FOLLOW_method_reference_in_insn_format3rc_method_odex5968;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type5989;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rc_type5991;
    public static final BitSet FOLLOW_register_range_in_insn_format3rc_type5993;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rc_type5995;
    public static final BitSet FOLLOW_COMMA_in_insn_format3rc_type5997;
    public static final BitSet FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type5999;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rmi_METHOD_in_insn_format3rmi_method6031;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rmi_method6033;
    public static final BitSet FOLLOW_register_range_in_insn_format3rmi_method6035;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rmi_method6037;
    public static final BitSet FOLLOW_COMMA_in_insn_format3rmi_method6039;
    public static final BitSet FOLLOW_INLINE_INDEX_in_insn_format3rmi_method6041;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT3rms_METHOD_in_insn_format3rms_method6062;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format3rms_method6064;
    public static final BitSet FOLLOW_register_range_in_insn_format3rms_method6066;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format3rms_method6068;
    public static final BitSet FOLLOW_COMMA_in_insn_format3rms_method6070;
    public static final BitSet FOLLOW_VTABLE_INDEX_in_insn_format3rms_method6072;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_insn_format45cc_method6093;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format45cc_method6095;
    public static final BitSet FOLLOW_register_list_in_insn_format45cc_method6097;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format45cc_method6099;
    public static final BitSet FOLLOW_COMMA_in_insn_format45cc_method6101;
    public static final BitSet FOLLOW_method_reference_in_insn_format45cc_method6103;
    public static final BitSet FOLLOW_COMMA_in_insn_format45cc_method6105;
    public static final BitSet FOLLOW_method_prototype_in_insn_format45cc_method6107;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_insn_format4rcc_method6141;
    public static final BitSet FOLLOW_OPEN_BRACE_in_insn_format4rcc_method6143;
    public static final BitSet FOLLOW_register_range_in_insn_format4rcc_method6145;
    public static final BitSet FOLLOW_CLOSE_BRACE_in_insn_format4rcc_method6147;
    public static final BitSet FOLLOW_COMMA_in_insn_format4rcc_method6149;
    public static final BitSet FOLLOW_method_reference_in_insn_format4rcc_method6151;
    public static final BitSet FOLLOW_COMMA_in_insn_format4rcc_method6153;
    public static final BitSet FOLLOW_method_prototype_in_insn_format4rcc_method6155;
    public static final BitSet FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l6189;
    public static final BitSet FOLLOW_REGISTER_in_insn_format51l6191;
    public static final BitSet FOLLOW_COMMA_in_insn_format51l6193;
    public static final BitSet FOLLOW_fixed_literal_in_insn_format51l6195;
    public static final BitSet FOLLOW_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive6222;
    public static final BitSet FOLLOW_parsed_integer_literal_in_insn_array_data_directive6228;
    public static final BitSet FOLLOW_fixed_literal_in_insn_array_data_directive6240;
    public static final BitSet FOLLOW_END_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive6243;
    public static final BitSet FOLLOW_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive6289;
    public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive6295;
    public static final BitSet FOLLOW_label_ref_in_insn_packed_switch_directive6301;
    public static final BitSet FOLLOW_END_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive6308;
    public static final BitSet FOLLOW_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive6382;
    public static final BitSet FOLLOW_fixed_32bit_literal_in_insn_sparse_switch_directive6389;
    public static final BitSet FOLLOW_ARROW_in_insn_sparse_switch_directive6391;
    public static final BitSet FOLLOW_label_ref_in_insn_sparse_switch_directive6393;
    public static final BitSet FOLLOW_END_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive6401;

    public Parser[] getDelegates() {
        return new Parser[0];
    }

    public smaliParser(TokenStream input) {
        this(input, new RecognizerSharedState());
    }

    public smaliParser(TokenStream input, RecognizerSharedState state) {
        super(input, state);
        this.adaptor = new CommonTreeAdaptor();
        this.verboseErrors = false;
        this.allowOdex = false;
        this.apiLevel = 15;
        this.opcodes = Opcodes.forApi(this.apiLevel);
        this.smali_file_stack = new Stack();
        this.statements_and_directives_stack = new Stack();
        this.dfa31 = new DFA31(this);
        this.dfa41 = new DFA41(this);
        this.dfa43 = new DFA43(this);
    }

    public void setTreeAdaptor(TreeAdaptor adaptor) {
        this.adaptor = adaptor;
    }

    public TreeAdaptor getTreeAdaptor() {
        return this.adaptor;
    }

    public String[] getTokenNames() {
        return tokenNames;
    }

    public String getGrammarFileName() {
        return "smaliParser.g";
    }

    public void setVerboseErrors(boolean verboseErrors) {
        this.verboseErrors = verboseErrors;
    }

    public void setAllowOdex(boolean allowOdex) {
        this.allowOdex = allowOdex;
    }

    public void setApiLevel(int apiLevel) {
        this.opcodes = Opcodes.forApi(apiLevel);
        this.apiLevel = apiLevel;
    }

    public String getErrorMessage(RecognitionException e, String[] tokenNames) {
        if (this.verboseErrors) {
            List stack = getRuleInvocationStack(e, this.getClass().getName());
            String msg = null;
            if (e instanceof NoViableAltException) {
                NoViableAltException nvae = (NoViableAltException)e;
                msg = " no viable alt; token=" + this.getTokenErrorDisplay(e.token) + " (decision=" + nvae.decisionNumber + " state " + nvae.stateNumber + ") decision=<<" + nvae.grammarDecisionDescription + ">>";
            } else {
                msg = super.getErrorMessage(e, tokenNames);
            }

            return stack + " " + msg;
        } else {
            return super.getErrorMessage(e, tokenNames);
        }
    }

    public String getTokenErrorDisplay(Token t) {
        if (!this.verboseErrors) {
            String s = t.getText();
            if (s == null) {
                if (t.getType() == -1) {
                    s = "<EOF>";
                } else {
                    s = "<" + tokenNames[t.getType()] + ">";
                }
            }

            s = s.replaceAll("\n", "\\\\n");
            s = s.replaceAll("\r", "\\\\r");
            s = s.replaceAll("\t", "\\\\t");
            return "'" + s + "'";
        } else {
            CommonToken ct = (CommonToken)t;
            String channelStr = "";
            if (t.getChannel() > 0) {
                channelStr = ",channel=" + t.getChannel();
            }

            String txt = t.getText();
            if (txt != null) {
                txt = txt.replaceAll("\n", "\\\\n");
                txt = txt.replaceAll("\r", "\\\\r");
                txt = txt.replaceAll("\t", "\\\\t");
            } else {
                txt = "<no text>";
            }

            return "[@" + t.getTokenIndex() + "," + ct.getStartIndex() + ":" + ct.getStopIndex() + "='" + txt + "',<" + tokenNames[t.getType()] + ">" + channelStr + "," + t.getLine() + ":" + t.getCharPositionInLine() + "]";
        }
    }

    public String getErrorHeader(RecognitionException e) {
        return this.getSourceName() + "[" + e.line + "," + e.charPositionInLine + "]";
    }

    private CommonTree buildTree(int type, String text, List<CommonTree> children) {
        CommonTree root = new CommonTree(new CommonToken(type, text));
        Iterator var5 = children.iterator();

        while(var5.hasNext()) {
            CommonTree child = (CommonTree)var5.next();
            root.addChild(child);
        }

        return root;
    }

    private CommonToken getParamListSubToken(CommonToken baseToken, String str, int typeStartIndex) {
        CommonToken token = new CommonToken(baseToken);
        token.setStartIndex(baseToken.getStartIndex() + typeStartIndex);
        int i;
        switch (str.charAt(typeStartIndex)) {
            case 'B':
            case 'C':
            case 'D':
            case 'F':
            case 'I':
            case 'J':
            case 'S':
            case 'Z':
                token.setType(202);
                token.setText(str.substring(typeStartIndex, typeStartIndex + 1));
                token.setStopIndex(baseToken.getStartIndex() + typeStartIndex);
                break;
            case 'E':
            case 'G':
            case 'H':
            case 'K':
            case 'M':
            case 'N':
            case 'O':
            case 'P':
            case 'Q':
            case 'R':
            case 'T':
            case 'U':
            case 'V':
            case 'W':
            case 'X':
            case 'Y':
            default:
                throw new RuntimeException(String.format("Invalid character '%c' in param list \"%s\" at position %d", str.charAt(typeStartIndex), str, typeStartIndex));
            case 'L':
                i = typeStartIndex;

                do {
                    ++i;
                } while(str.charAt(i) != ';');

                token.setType(16);
                token.setText(str.substring(typeStartIndex, i + 1));
                token.setStopIndex(baseToken.getStartIndex() + i);
                break;
            case '[':
                i = typeStartIndex;

                while(true) {
                    ++i;
                    if (str.charAt(i) != '[') {
                        token.setType(8);
                        token.setText(str.substring(typeStartIndex, i));
                        token.setStopIndex(baseToken.getStartIndex() + i - 1);
                        break;
                    }
                }
        }

        return token;
    }

    private CommonTree parseParamList(CommonToken paramListToken) {
        String paramList = paramListToken.getText();
        CommonTree root = new CommonTree();
        int startIndex = paramListToken.getStartIndex();

        CommonToken token;
        for(int i = 0; i < paramList.length(); i += token.getText().length()) {
            token = this.getParamListSubToken(paramListToken, paramList, i);
            root.addChild(new CommonTree(token));
        }

        return root.getChildCount() == 0 ? null : root;
    }

    private void throwOdexedInstructionException(IntStream input, String odexedInstruction) throws OdexedInstructionException {
        throw new OdexedInstructionException(input, odexedInstruction);
    }

    public final smali_file_return smali_file() throws RecognitionException {
        this.smali_file_stack.push(new smali_file_scope());
        smali_file_return retval = new smali_file_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token EOF8 = null;
        ParserRuleReturnScope class_spec1 = null;
        ParserRuleReturnScope super_spec2 = null;
        ParserRuleReturnScope implements_spec3 = null;
        ParserRuleReturnScope source_spec4 = null;
        ParserRuleReturnScope method5 = null;
        ParserRuleReturnScope field6 = null;
        ParserRuleReturnScope annotation7 = null;
        CommonTree EOF8_tree = null;
        RewriteRuleTokenStream stream_EOF = new RewriteRuleTokenStream(this.adaptor, "token EOF");
        RewriteRuleSubtreeStream stream_class_spec = new RewriteRuleSubtreeStream(this.adaptor, "rule class_spec");
        RewriteRuleSubtreeStream stream_annotation = new RewriteRuleSubtreeStream(this.adaptor, "rule annotation");
        RewriteRuleSubtreeStream stream_method = new RewriteRuleSubtreeStream(this.adaptor, "rule method");
        RewriteRuleSubtreeStream stream_field = new RewriteRuleSubtreeStream(this.adaptor, "rule field");
        RewriteRuleSubtreeStream stream_super_spec = new RewriteRuleSubtreeStream(this.adaptor, "rule super_spec");
        RewriteRuleSubtreeStream stream_implements_spec = new RewriteRuleSubtreeStream(this.adaptor, "rule implements_spec");
        RewriteRuleSubtreeStream stream_source_spec = new RewriteRuleSubtreeStream(this.adaptor, "rule source_spec");
        ((smali_file_scope)this.smali_file_stack.peek()).hasClassSpec = ((smali_file_scope)this.smali_file_stack.peek()).hasSuperSpec = ((smali_file_scope)this.smali_file_stack.peek()).hasSourceSpec = false;
        ((smali_file_scope)this.smali_file_stack.peek()).classAnnotations = new ArrayList();

        try {
            int cnt1 = 0;

            while(true) {
                int alt1 = 8;
                int LA1_0 = this.input.LA(1);
                if (LA1_0 == 17 && !((smali_file_scope)this.smali_file_stack.peek()).hasClassSpec) {
                    alt1 = 1;
                } else if (LA1_0 == 213 && !((smali_file_scope)this.smali_file_stack.peek()).hasSuperSpec) {
                    alt1 = 2;
                } else if (LA1_0 == 42) {
                    alt1 = 3;
                } else if (LA1_0 == 209 && !((smali_file_scope)this.smali_file_stack.peek()).hasSourceSpec) {
                    alt1 = 4;
                } else if (LA1_0 == 191) {
                    alt1 = 5;
                } else if (LA1_0 == 37) {
                    alt1 = 6;
                } else if (LA1_0 == 5) {
                    alt1 = 7;
                }

                switch (alt1) {
                    case 1:
                        if (((smali_file_scope)this.smali_file_stack.peek()).hasClassSpec) {
                            throw new FailedPredicateException(this.input, "smali_file", "!$smali_file::hasClassSpec");
                        }

                        this.pushFollow(FOLLOW_class_spec_in_smali_file1150);
                        class_spec1 = this.class_spec();
                        --this.state._fsp;
                        stream_class_spec.add(class_spec1.getTree());
                        ((smali_file_scope)this.smali_file_stack.peek()).hasClassSpec = true;
                        break;
                    case 2:
                        if (((smali_file_scope)this.smali_file_stack.peek()).hasSuperSpec) {
                            throw new FailedPredicateException(this.input, "smali_file", "!$smali_file::hasSuperSpec");
                        }

                        this.pushFollow(FOLLOW_super_spec_in_smali_file1161);
                        super_spec2 = this.super_spec();
                        --this.state._fsp;
                        stream_super_spec.add(super_spec2.getTree());
                        ((smali_file_scope)this.smali_file_stack.peek()).hasSuperSpec = true;
                        break;
                    case 3:
                        this.pushFollow(FOLLOW_implements_spec_in_smali_file1169);
                        implements_spec3 = this.implements_spec();
                        --this.state._fsp;
                        stream_implements_spec.add(implements_spec3.getTree());
                        break;
                    case 4:
                        if (((smali_file_scope)this.smali_file_stack.peek()).hasSourceSpec) {
                            throw new FailedPredicateException(this.input, "smali_file", "!$smali_file::hasSourceSpec");
                        }

                        this.pushFollow(FOLLOW_source_spec_in_smali_file1178);
                        source_spec4 = this.source_spec();
                        --this.state._fsp;
                        stream_source_spec.add(source_spec4.getTree());
                        ((smali_file_scope)this.smali_file_stack.peek()).hasSourceSpec = true;
                        break;
                    case 5:
                        this.pushFollow(FOLLOW_method_in_smali_file1186);
                        method5 = this.method();
                        --this.state._fsp;
                        stream_method.add(method5.getTree());
                        break;
                    case 6:
                        this.pushFollow(FOLLOW_field_in_smali_file1192);
                        field6 = this.field();
                        --this.state._fsp;
                        stream_field.add(field6.getTree());
                        break;
                    case 7:
                        this.pushFollow(FOLLOW_annotation_in_smali_file1198);
                        annotation7 = this.annotation();
                        --this.state._fsp;
                        stream_annotation.add(annotation7.getTree());
                        ((smali_file_scope)this.smali_file_stack.peek()).classAnnotations.add(annotation7 != null ? (CommonTree)annotation7.getTree() : null);
                        break;
                    default:
                        if (cnt1 < 1) {
                            EarlyExitException eee = new EarlyExitException(1, this.input);
                            throw eee;
                        }

                        EOF8 = (Token)this.match(this.input, -1, FOLLOW_EOF_in_smali_file1209);
                        stream_EOF.add(EOF8);
                        if (!((smali_file_scope)this.smali_file_stack.peek()).hasClassSpec) {
                            throw new SemanticException(this.input, "The file must contain a .class directive", new Object[0]);
                        }

                        if (!((smali_file_scope)this.smali_file_stack.peek()).hasSuperSpec && !(class_spec1 != null ? ((class_spec_return)class_spec1).className : null).equals("Ljava/lang/Object;")) {
                            throw new SemanticException(this.input, "The file must contain a .super directive", new Object[0]);
                        }

                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        CommonTree root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(109, "I_CLASS_DEF"), root_1);
                        this.adaptor.addChild(root_1, stream_class_spec.nextTree());
                        if (stream_super_spec.hasNext()) {
                            this.adaptor.addChild(root_1, stream_super_spec.nextTree());
                        }

                        stream_super_spec.reset();

                        while(stream_implements_spec.hasNext()) {
                            this.adaptor.addChild(root_1, stream_implements_spec.nextTree());
                        }

                        stream_implements_spec.reset();
                        if (stream_source_spec.hasNext()) {
                            this.adaptor.addChild(root_1, stream_source_spec.nextTree());
                        }

                        stream_source_spec.reset();
                        CommonTree root_2 = (CommonTree)this.adaptor.nil();
                        root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(127, "I_METHODS"), root_2);

                        while(stream_method.hasNext()) {
                            this.adaptor.addChild(root_2, stream_method.nextTree());
                        }

                        stream_method.reset();
                        this.adaptor.addChild(root_1, root_2);
                        root_2 = (CommonTree)this.adaptor.nil();
                        root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(118, "I_FIELDS"), root_2);

                        while(stream_field.hasNext()) {
                            this.adaptor.addChild(root_2, stream_field.nextTree());
                        }

                        stream_field.reset();
                        this.adaptor.addChild(root_1, root_2);
                        this.adaptor.addChild(root_1, this.buildTree(100, "I_ANNOTATIONS", ((smali_file_scope)this.smali_file_stack.peek()).classAnnotations));
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                        return retval;
                }

                ++cnt1;
            }
        } catch (RecognitionException var27) {
            RecognitionException re = var27;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
        } finally {
            this.smali_file_stack.pop();
        }

        return retval;
    }

    public final class_spec_return class_spec() throws RecognitionException {
        class_spec_return retval = new class_spec_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token CLASS_DIRECTIVE9 = null;
        Token CLASS_DESCRIPTOR11 = null;
        ParserRuleReturnScope access_list10 = null;
        CommonTree CLASS_DIRECTIVE9_tree = null;
        CommonTree CLASS_DESCRIPTOR11_tree = null;
        RewriteRuleTokenStream stream_CLASS_DESCRIPTOR = new RewriteRuleTokenStream(this.adaptor, "token CLASS_DESCRIPTOR");
        RewriteRuleTokenStream stream_CLASS_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token CLASS_DIRECTIVE");
        RewriteRuleSubtreeStream stream_access_list = new RewriteRuleSubtreeStream(this.adaptor, "rule access_list");

        try {
            try {
                CLASS_DIRECTIVE9 = (Token)this.match(this.input, 17, FOLLOW_CLASS_DIRECTIVE_in_class_spec1296);
                stream_CLASS_DIRECTIVE.add(CLASS_DIRECTIVE9);
                this.pushFollow(FOLLOW_access_list_in_class_spec1298);
                access_list10 = this.access_list();
                --this.state._fsp;
                stream_access_list.add(access_list10.getTree());
                CLASS_DESCRIPTOR11 = (Token)this.match(this.input, 16, FOLLOW_CLASS_DESCRIPTOR_in_class_spec1300);
                stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR11);
                retval.className = CLASS_DESCRIPTOR11 != null ? CLASS_DESCRIPTOR11.getText() : null;
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                this.adaptor.addChild(root_0, stream_CLASS_DESCRIPTOR.nextNode());
                this.adaptor.addChild(root_0, stream_access_list.nextTree());
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var15) {
                RecognitionException re = var15;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final super_spec_return super_spec() throws RecognitionException {
        super_spec_return retval = new super_spec_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token SUPER_DIRECTIVE12 = null;
        Token CLASS_DESCRIPTOR13 = null;
        CommonTree SUPER_DIRECTIVE12_tree = null;
        CommonTree CLASS_DESCRIPTOR13_tree = null;
        RewriteRuleTokenStream stream_CLASS_DESCRIPTOR = new RewriteRuleTokenStream(this.adaptor, "token CLASS_DESCRIPTOR");
        RewriteRuleTokenStream stream_SUPER_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token SUPER_DIRECTIVE");

        try {
            try {
                SUPER_DIRECTIVE12 = (Token)this.match(this.input, 213, FOLLOW_SUPER_DIRECTIVE_in_super_spec1318);
                stream_SUPER_DIRECTIVE.add(SUPER_DIRECTIVE12);
                CLASS_DESCRIPTOR13 = (Token)this.match(this.input, 16, FOLLOW_CLASS_DESCRIPTOR_in_super_spec1320);
                stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR13);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(184, retval.start, "I_SUPER"), root_1);
                this.adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final implements_spec_return implements_spec() throws RecognitionException {
        implements_spec_return retval = new implements_spec_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token IMPLEMENTS_DIRECTIVE14 = null;
        Token CLASS_DESCRIPTOR15 = null;
        CommonTree IMPLEMENTS_DIRECTIVE14_tree = null;
        CommonTree CLASS_DESCRIPTOR15_tree = null;
        RewriteRuleTokenStream stream_IMPLEMENTS_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token IMPLEMENTS_DIRECTIVE");
        RewriteRuleTokenStream stream_CLASS_DESCRIPTOR = new RewriteRuleTokenStream(this.adaptor, "token CLASS_DESCRIPTOR");

        try {
            try {
                IMPLEMENTS_DIRECTIVE14 = (Token)this.match(this.input, 42, FOLLOW_IMPLEMENTS_DIRECTIVE_in_implements_spec1339);
                stream_IMPLEMENTS_DIRECTIVE.add(IMPLEMENTS_DIRECTIVE14);
                CLASS_DESCRIPTOR15 = (Token)this.match(this.input, 16, FOLLOW_CLASS_DESCRIPTOR_in_implements_spec1341);
                stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR15);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(121, retval.start, "I_IMPLEMENTS"), root_1);
                this.adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final source_spec_return source_spec() throws RecognitionException {
        source_spec_return retval = new source_spec_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token SOURCE_DIRECTIVE16 = null;
        Token STRING_LITERAL17 = null;
        CommonTree SOURCE_DIRECTIVE16_tree = null;
        CommonTree STRING_LITERAL17_tree = null;
        RewriteRuleTokenStream stream_SOURCE_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token SOURCE_DIRECTIVE");
        RewriteRuleTokenStream stream_STRING_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token STRING_LITERAL");

        try {
            try {
                SOURCE_DIRECTIVE16 = (Token)this.match(this.input, 209, FOLLOW_SOURCE_DIRECTIVE_in_source_spec1360);
                stream_SOURCE_DIRECTIVE.add(SOURCE_DIRECTIVE16);
                STRING_LITERAL17 = (Token)this.match(this.input, 211, FOLLOW_STRING_LITERAL_in_source_spec1362);
                stream_STRING_LITERAL.add(STRING_LITERAL17);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(141, retval.start, "I_SOURCE"), root_1);
                this.adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final access_list_return access_list() throws RecognitionException {
        access_list_return retval = new access_list_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token ACCESS_SPEC18 = null;
        CommonTree ACCESS_SPEC18_tree = null;
        RewriteRuleTokenStream stream_ACCESS_SPEC = new RewriteRuleTokenStream(this.adaptor, "token ACCESS_SPEC");

        try {
            while(true) {
                int alt2 = 2;
                int LA2_0 = this.input.LA(1);
                if (LA2_0 == 4) {
                    alt2 = 1;
                }

                switch (alt2) {
                    case 1:
                        ACCESS_SPEC18 = (Token)this.match(this.input, 4, FOLLOW_ACCESS_SPEC_in_access_list1381);
                        stream_ACCESS_SPEC.add(ACCESS_SPEC18);
                        break;
                    default:
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        CommonTree root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(97, retval.start, "I_ACCESS_LIST"), root_1);

                        while(stream_ACCESS_SPEC.hasNext()) {
                            this.adaptor.addChild(root_1, stream_ACCESS_SPEC.nextNode());
                        }

                        stream_ACCESS_SPEC.reset();
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                        return retval;
                }
            }
        } catch (RecognitionException var11) {
            RecognitionException re = var11;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            return retval;
        } finally {
            ;
        }
    }

    public final access_or_restriction_return access_or_restriction() throws RecognitionException {
        access_or_restriction_return retval = new access_or_restriction_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token set19 = null;
        CommonTree set19_tree = null;

        try {
            try {
                root_0 = (CommonTree)this.adaptor.nil();
                set19 = this.input.LT(1);
                if (this.input.LA(1) != 4 && this.input.LA(1) != 41) {
                    MismatchedSetException mse = new MismatchedSetException((BitSet)null, this.input);
                    throw mse;
                }

                this.input.consume();
                this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(set19));
                this.state.errorRecovery = false;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var9) {
                RecognitionException re = var9;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final access_or_restriction_list_return access_or_restriction_list() throws RecognitionException {
        access_or_restriction_list_return retval = new access_or_restriction_list_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        ParserRuleReturnScope access_or_restriction20 = null;
        RewriteRuleSubtreeStream stream_access_or_restriction = new RewriteRuleSubtreeStream(this.adaptor, "rule access_or_restriction");

        try {
            while(true) {
                int alt3 = 2;
                int LA3_0 = this.input.LA(1);
                int LA3_3;
                if (LA3_0 == 4) {
                    LA3_3 = this.input.LA(2);
                    if (LA3_3 == 4 || LA3_3 == 6 || LA3_3 == 11 || LA3_3 == 24 || LA3_3 >= 40 && LA3_3 <= 41 || LA3_3 >= 44 && LA3_3 <= 46 || LA3_3 == 48 || LA3_3 == 50 || LA3_3 >= 53 && LA3_3 <= 58 || LA3_3 == 62 || LA3_3 >= 64 && LA3_3 <= 67 || LA3_3 >= 69 && LA3_3 <= 70 || LA3_3 == 72 || LA3_3 >= 76 && LA3_3 <= 77 || LA3_3 >= 79 && LA3_3 <= 85 || LA3_3 >= 92 && LA3_3 <= 94 || LA3_3 == 190 || LA3_3 >= 192 && LA3_3 <= 195 || LA3_3 >= 200 && LA3_3 <= 202 || LA3_3 == 204 || LA3_3 == 208 || LA3_3 >= 214 && LA3_3 <= 215) {
                        alt3 = 1;
                    }
                } else if (LA3_0 == 41) {
                    LA3_3 = this.input.LA(2);
                    if (LA3_3 == 4 || LA3_3 == 6 || LA3_3 == 11 || LA3_3 == 24 || LA3_3 >= 40 && LA3_3 <= 41 || LA3_3 >= 44 && LA3_3 <= 46 || LA3_3 == 48 || LA3_3 == 50 || LA3_3 >= 53 && LA3_3 <= 58 || LA3_3 == 62 || LA3_3 >= 64 && LA3_3 <= 67 || LA3_3 >= 69 && LA3_3 <= 70 || LA3_3 == 72 || LA3_3 >= 76 && LA3_3 <= 77 || LA3_3 >= 79 && LA3_3 <= 85 || LA3_3 >= 92 && LA3_3 <= 94 || LA3_3 == 190 || LA3_3 >= 192 && LA3_3 <= 195 || LA3_3 >= 200 && LA3_3 <= 202 || LA3_3 == 204 || LA3_3 == 208 || LA3_3 >= 214 && LA3_3 <= 215) {
                        alt3 = 1;
                    }
                }

                switch (alt3) {
                    case 1:
                        this.pushFollow(FOLLOW_access_or_restriction_in_access_or_restriction_list1416);
                        access_or_restriction20 = this.access_or_restriction();
                        --this.state._fsp;
                        stream_access_or_restriction.add(access_or_restriction20.getTree());
                        break;
                    default:
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        CommonTree root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(98, retval.start, "I_ACCESS_AND_RESTRICTION_LIST"), root_1);

                        while(stream_access_or_restriction.hasNext()) {
                            this.adaptor.addChild(root_1, stream_access_or_restriction.nextTree());
                        }

                        stream_access_or_restriction.reset();
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                        return retval;
                }
            }
        } catch (RecognitionException var11) {
            RecognitionException re = var11;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            return retval;
        } finally {
            ;
        }
    }

    public final field_return field() throws RecognitionException {
        field_return retval = new field_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token FIELD_DIRECTIVE21 = null;
        Token COLON24 = null;
        Token EQUAL26 = null;
        Token END_FIELD_DIRECTIVE29 = null;
        ParserRuleReturnScope access_or_restriction_list22 = null;
        ParserRuleReturnScope member_name23 = null;
        ParserRuleReturnScope nonvoid_type_descriptor25 = null;
        ParserRuleReturnScope literal27 = null;
        ParserRuleReturnScope annotation28 = null;
        CommonTree FIELD_DIRECTIVE21_tree = null;
        CommonTree COLON24_tree = null;
        CommonTree EQUAL26_tree = null;
        CommonTree END_FIELD_DIRECTIVE29_tree = null;
        RewriteRuleTokenStream stream_END_FIELD_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token END_FIELD_DIRECTIVE");
        RewriteRuleTokenStream stream_EQUAL = new RewriteRuleTokenStream(this.adaptor, "token EQUAL");
        RewriteRuleTokenStream stream_FIELD_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token FIELD_DIRECTIVE");
        RewriteRuleTokenStream stream_COLON = new RewriteRuleTokenStream(this.adaptor, "token COLON");
        RewriteRuleSubtreeStream stream_annotation = new RewriteRuleSubtreeStream(this.adaptor, "rule annotation");
        RewriteRuleSubtreeStream stream_access_or_restriction_list = new RewriteRuleSubtreeStream(this.adaptor, "rule access_or_restriction_list");
        RewriteRuleSubtreeStream stream_nonvoid_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule nonvoid_type_descriptor");
        RewriteRuleSubtreeStream stream_member_name = new RewriteRuleSubtreeStream(this.adaptor, "rule member_name");
        RewriteRuleSubtreeStream stream_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule literal");
        List<CommonTree> annotations = new ArrayList();

        try {
            FIELD_DIRECTIVE21 = (Token)this.match(this.input, 37, FOLLOW_FIELD_DIRECTIVE_in_field1449);
            stream_FIELD_DIRECTIVE.add(FIELD_DIRECTIVE21);
            this.pushFollow(FOLLOW_access_or_restriction_list_in_field1451);
            access_or_restriction_list22 = this.access_or_restriction_list();
            --this.state._fsp;
            stream_access_or_restriction_list.add(access_or_restriction_list22.getTree());
            this.pushFollow(FOLLOW_member_name_in_field1453);
            member_name23 = this.member_name();
            --this.state._fsp;
            stream_member_name.add(member_name23.getTree());
            COLON24 = (Token)this.match(this.input, 20, FOLLOW_COLON_in_field1455);
            stream_COLON.add(COLON24);
            this.pushFollow(FOLLOW_nonvoid_type_descriptor_in_field1457);
            nonvoid_type_descriptor25 = this.nonvoid_type_descriptor();
            --this.state._fsp;
            stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor25.getTree());
            int alt4 = 2;
            int LA4_0 = this.input.LA(1);
            if (LA4_0 == 36) {
                alt4 = 1;
            }

            switch (alt4) {
                case 1:
                    EQUAL26 = (Token)this.match(this.input, 36, FOLLOW_EQUAL_in_field1460);
                    stream_EQUAL.add(EQUAL26);
                    this.pushFollow(FOLLOW_literal_in_field1462);
                    literal27 = this.literal();
                    --this.state._fsp;
                    stream_literal.add(literal27.getTree());
            }

            while(true) {
                int alt6 = 2;
                int LA6_0 = this.input.LA(1);
                if (LA6_0 == 5) {
                    int LA5_9 = this.input.LA(2);
                    if (this.input.LA(1) == 5) {
                        alt6 = 1;
                    }
                }

                switch (alt6) {
                    case 1:
                        if (this.input.LA(1) != 5) {
                            throw new FailedPredicateException(this.input, "field", "input.LA(1) == ANNOTATION_DIRECTIVE");
                        }

                        this.pushFollow(FOLLOW_annotation_in_field1475);
                        annotation28 = this.annotation();
                        --this.state._fsp;
                        stream_annotation.add(annotation28.getTree());
                        annotations.add(annotation28 != null ? (CommonTree)annotation28.getTree() : null);
                        break;
                    default:
                        alt6 = 0;
                        LA6_0 = this.input.LA(1);
                        if (LA6_0 == 27) {
                            alt6 = 1;
                        } else {
                            if (LA6_0 != -1 && LA6_0 != 5 && LA6_0 != 17 && LA6_0 != 37 && LA6_0 != 42 && LA6_0 != 191 && LA6_0 != 209 && LA6_0 != 213) {
                                NoViableAltException nvae = new NoViableAltException("", 6, 0, this.input);
                                throw nvae;
                            }

                            alt6 = 2;
                        }

                        CommonTree root_1;
                        CommonTree root_2;
                        switch (alt6) {
                            case 1:
                                END_FIELD_DIRECTIVE29 = (Token)this.match(this.input, 27, FOLLOW_END_FIELD_DIRECTIVE_in_field1489);
                                stream_END_FIELD_DIRECTIVE.add(END_FIELD_DIRECTIVE29);
                                retval.tree = root_0;
                                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                                root_0 = (CommonTree)this.adaptor.nil();
                                root_1 = (CommonTree)this.adaptor.nil();
                                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(117, retval.start, "I_FIELD"), root_1);
                                this.adaptor.addChild(root_1, stream_member_name.nextTree());
                                this.adaptor.addChild(root_1, stream_access_or_restriction_list.nextTree());
                                root_2 = (CommonTree)this.adaptor.nil();
                                root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(120, "I_FIELD_TYPE"), root_2);
                                this.adaptor.addChild(root_2, stream_nonvoid_type_descriptor.nextTree());
                                this.adaptor.addChild(root_1, root_2);
                                if (stream_literal.hasNext()) {
                                    root_2 = (CommonTree)this.adaptor.nil();
                                    root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(119, "I_FIELD_INITIAL_VALUE"), root_2);
                                    this.adaptor.addChild(root_2, stream_literal.nextTree());
                                    this.adaptor.addChild(root_1, root_2);
                                }

                                stream_literal.reset();
                                root_2 = (CommonTree)this.adaptor.nil();
                                root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(100, "I_ANNOTATIONS"), root_2);

                                while(stream_annotation.hasNext()) {
                                    this.adaptor.addChild(root_2, stream_annotation.nextTree());
                                }

                                stream_annotation.reset();
                                this.adaptor.addChild(root_1, root_2);
                                this.adaptor.addChild(root_0, root_1);
                                retval.tree = root_0;
                                break;
                            case 2:
                                ((smali_file_scope)this.smali_file_stack.peek()).classAnnotations.addAll(annotations);
                                retval.tree = root_0;
                                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                                root_0 = (CommonTree)this.adaptor.nil();
                                root_1 = (CommonTree)this.adaptor.nil();
                                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(117, retval.start, "I_FIELD"), root_1);
                                this.adaptor.addChild(root_1, stream_member_name.nextTree());
                                this.adaptor.addChild(root_1, stream_access_or_restriction_list.nextTree());
                                root_2 = (CommonTree)this.adaptor.nil();
                                root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(120, "I_FIELD_TYPE"), root_2);
                                this.adaptor.addChild(root_2, stream_nonvoid_type_descriptor.nextTree());
                                this.adaptor.addChild(root_1, root_2);
                                if (stream_literal.hasNext()) {
                                    root_2 = (CommonTree)this.adaptor.nil();
                                    root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(119, "I_FIELD_INITIAL_VALUE"), root_2);
                                    this.adaptor.addChild(root_2, stream_literal.nextTree());
                                    this.adaptor.addChild(root_1, root_2);
                                }

                                stream_literal.reset();
                                root_2 = (CommonTree)this.adaptor.nil();
                                root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(100, "I_ANNOTATIONS"), root_2);
                                this.adaptor.addChild(root_1, root_2);
                                this.adaptor.addChild(root_0, root_1);
                                retval.tree = root_0;
                        }

                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                        return retval;
                }
            }
        } catch (RecognitionException var36) {
            RecognitionException re = var36;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            return retval;
        } finally {
            ;
        }
    }

    public final method_return method() throws RecognitionException {
        method_return retval = new method_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token METHOD_DIRECTIVE30 = null;
        Token END_METHOD_DIRECTIVE35 = null;
        ParserRuleReturnScope access_or_restriction_list31 = null;
        ParserRuleReturnScope member_name32 = null;
        ParserRuleReturnScope method_prototype33 = null;
        ParserRuleReturnScope statements_and_directives34 = null;
        CommonTree METHOD_DIRECTIVE30_tree = null;
        CommonTree END_METHOD_DIRECTIVE35_tree = null;
        RewriteRuleTokenStream stream_END_METHOD_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token END_METHOD_DIRECTIVE");
        RewriteRuleTokenStream stream_METHOD_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token METHOD_DIRECTIVE");
        RewriteRuleSubtreeStream stream_access_or_restriction_list = new RewriteRuleSubtreeStream(this.adaptor, "rule access_or_restriction_list");
        RewriteRuleSubtreeStream stream_method_prototype = new RewriteRuleSubtreeStream(this.adaptor, "rule method_prototype");
        RewriteRuleSubtreeStream stream_member_name = new RewriteRuleSubtreeStream(this.adaptor, "rule member_name");
        RewriteRuleSubtreeStream stream_statements_and_directives = new RewriteRuleSubtreeStream(this.adaptor, "rule statements_and_directives");

        try {
            try {
                METHOD_DIRECTIVE30 = (Token)this.match(this.input, 191, FOLLOW_METHOD_DIRECTIVE_in_method1600);
                stream_METHOD_DIRECTIVE.add(METHOD_DIRECTIVE30);
                this.pushFollow(FOLLOW_access_or_restriction_list_in_method1602);
                access_or_restriction_list31 = this.access_or_restriction_list();
                --this.state._fsp;
                stream_access_or_restriction_list.add(access_or_restriction_list31.getTree());
                this.pushFollow(FOLLOW_member_name_in_method1604);
                member_name32 = this.member_name();
                --this.state._fsp;
                stream_member_name.add(member_name32.getTree());
                this.pushFollow(FOLLOW_method_prototype_in_method1606);
                method_prototype33 = this.method_prototype();
                --this.state._fsp;
                stream_method_prototype.add(method_prototype33.getTree());
                this.pushFollow(FOLLOW_statements_and_directives_in_method1608);
                statements_and_directives34 = this.statements_and_directives();
                --this.state._fsp;
                stream_statements_and_directives.add(statements_and_directives34.getTree());
                END_METHOD_DIRECTIVE35 = (Token)this.match(this.input, 29, FOLLOW_END_METHOD_DIRECTIVE_in_method1614);
                stream_END_METHOD_DIRECTIVE.add(END_METHOD_DIRECTIVE35);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(126, retval.start, "I_METHOD"), root_1);
                this.adaptor.addChild(root_1, stream_member_name.nextTree());
                this.adaptor.addChild(root_1, stream_method_prototype.nextTree());
                this.adaptor.addChild(root_1, stream_access_or_restriction_list.nextTree());
                this.adaptor.addChild(root_1, stream_statements_and_directives.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var22) {
                RecognitionException re = var22;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final statements_and_directives_return statements_and_directives() throws RecognitionException {
        this.statements_and_directives_stack.push(new statements_and_directives_scope());
        statements_and_directives_return retval = new statements_and_directives_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        ParserRuleReturnScope ordered_method_item36 = null;
        ParserRuleReturnScope registers_directive37 = null;
        ParserRuleReturnScope catch_directive38 = null;
        ParserRuleReturnScope catchall_directive39 = null;
        ParserRuleReturnScope parameter_directive40 = null;
        ParserRuleReturnScope annotation41 = null;
        RewriteRuleSubtreeStream stream_annotation = new RewriteRuleSubtreeStream(this.adaptor, "rule annotation");
        RewriteRuleSubtreeStream stream_catchall_directive = new RewriteRuleSubtreeStream(this.adaptor, "rule catchall_directive");
        RewriteRuleSubtreeStream stream_registers_directive = new RewriteRuleSubtreeStream(this.adaptor, "rule registers_directive");
        RewriteRuleSubtreeStream stream_catch_directive = new RewriteRuleSubtreeStream(this.adaptor, "rule catch_directive");
        RewriteRuleSubtreeStream stream_ordered_method_item = new RewriteRuleSubtreeStream(this.adaptor, "rule ordered_method_item");
        RewriteRuleSubtreeStream stream_parameter_directive = new RewriteRuleSubtreeStream(this.adaptor, "rule parameter_directive");

        try {
            ((statements_and_directives_scope)this.statements_and_directives_stack.peek()).hasRegistersDirective = false;
            ((statements_and_directives_scope)this.statements_and_directives_stack.peek()).methodAnnotations = new ArrayList();

            while(true) {
                int alt7 = 7;
                switch (this.input.LA(1)) {
                    case 5:
                        alt7 = 6;
                    case 6:
                    case 8:
                    case 9:
                    case 10:
                    case 11:
                    case 12:
                    case 15:
                    case 16:
                    case 17:
                    case 18:
                    case 19:
                    case 21:
                    case 22:
                    case 23:
                    case 24:
                    case 25:
                    case 26:
                    case 27:
                    case 29:
                    case 30:
                    case 31:
                    case 32:
                    case 33:
                    case 34:
                    case 36:
                    case 37:
                    case 38:
                    case 39:
                    case 40:
                    case 41:
                    case 42:
                    case 43:
                    case 95:
                    case 96:
                    case 97:
                    case 98:
                    case 99:
                    case 100:
                    case 101:
                    case 102:
                    case 103:
                    case 104:
                    case 105:
                    case 106:
                    case 107:
                    case 108:
                    case 109:
                    case 110:
                    case 111:
                    case 112:
                    case 113:
                    case 114:
                    case 115:
                    case 116:
                    case 117:
                    case 118:
                    case 119:
                    case 120:
                    case 121:
                    case 122:
                    case 123:
                    case 124:
                    case 125:
                    case 126:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 131:
                    case 132:
                    case 133:
                    case 134:
                    case 135:
                    case 136:
                    case 137:
                    case 138:
                    case 139:
                    case 140:
                    case 141:
                    case 142:
                    case 143:
                    case 144:
                    case 145:
                    case 146:
                    case 147:
                    case 148:
                    case 149:
                    case 150:
                    case 151:
                    case 152:
                    case 153:
                    case 154:
                    case 155:
                    case 156:
                    case 157:
                    case 158:
                    case 159:
                    case 160:
                    case 161:
                    case 162:
                    case 163:
                    case 164:
                    case 165:
                    case 166:
                    case 167:
                    case 168:
                    case 169:
                    case 170:
                    case 171:
                    case 172:
                    case 173:
                    case 174:
                    case 175:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 180:
                    case 181:
                    case 182:
                    case 183:
                    case 184:
                    case 185:
                    case 189:
                    case 190:
                    case 191:
                    case 192:
                    case 193:
                    case 194:
                    case 195:
                    case 196:
                    case 197:
                    case 200:
                    case 201:
                    case 202:
                    case 204:
                    case 207:
                    case 208:
                    default:
                        break;
                    case 7:
                    case 20:
                    case 28:
                    case 35:
                    case 44:
                    case 45:
                    case 46:
                    case 47:
                    case 48:
                    case 49:
                    case 50:
                    case 51:
                    case 52:
                    case 53:
                    case 54:
                    case 55:
                    case 56:
                    case 57:
                    case 58:
                    case 59:
                    case 60:
                    case 61:
                    case 62:
                    case 63:
                    case 64:
                    case 65:
                    case 66:
                    case 67:
                    case 68:
                    case 69:
                    case 70:
                    case 71:
                    case 72:
                    case 73:
                    case 74:
                    case 75:
                    case 76:
                    case 77:
                    case 78:
                    case 79:
                    case 80:
                    case 81:
                    case 82:
                    case 83:
                    case 84:
                    case 85:
                    case 86:
                    case 87:
                    case 88:
                    case 89:
                    case 90:
                    case 91:
                    case 92:
                    case 93:
                    case 94:
                    case 186:
                    case 188:
                    case 198:
                    case 203:
                    case 206:
                    case 209:
                    case 210:
                        alt7 = 1;
                        break;
                    case 13:
                        alt7 = 4;
                        break;
                    case 14:
                        alt7 = 3;
                        break;
                    case 187:
                    case 205:
                        alt7 = 2;
                        break;
                    case 199:
                        alt7 = 5;
                }

                switch (alt7) {
                    case 1:
                        this.pushFollow(FOLLOW_ordered_method_item_in_statements_and_directives1659);
                        ordered_method_item36 = this.ordered_method_item();
                        --this.state._fsp;
                        stream_ordered_method_item.add(ordered_method_item36.getTree());
                        break;
                    case 2:
                        this.pushFollow(FOLLOW_registers_directive_in_statements_and_directives1667);
                        registers_directive37 = this.registers_directive();
                        --this.state._fsp;
                        stream_registers_directive.add(registers_directive37.getTree());
                        break;
                    case 3:
                        this.pushFollow(FOLLOW_catch_directive_in_statements_and_directives1675);
                        catch_directive38 = this.catch_directive();
                        --this.state._fsp;
                        stream_catch_directive.add(catch_directive38.getTree());
                        break;
                    case 4:
                        this.pushFollow(FOLLOW_catchall_directive_in_statements_and_directives1683);
                        catchall_directive39 = this.catchall_directive();
                        --this.state._fsp;
                        stream_catchall_directive.add(catchall_directive39.getTree());
                        break;
                    case 5:
                        this.pushFollow(FOLLOW_parameter_directive_in_statements_and_directives1691);
                        parameter_directive40 = this.parameter_directive();
                        --this.state._fsp;
                        stream_parameter_directive.add(parameter_directive40.getTree());
                        break;
                    case 6:
                        this.pushFollow(FOLLOW_annotation_in_statements_and_directives1699);
                        annotation41 = this.annotation();
                        --this.state._fsp;
                        stream_annotation.add(annotation41.getTree());
                        ((statements_and_directives_scope)this.statements_and_directives_stack.peek()).methodAnnotations.add(annotation41 != null ? (CommonTree)annotation41.getTree() : null);
                        break;
                    default:
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        if (stream_registers_directive.hasNext()) {
                            this.adaptor.addChild(root_0, stream_registers_directive.nextTree());
                        }

                        stream_registers_directive.reset();
                        CommonTree root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(130, "I_ORDERED_METHOD_ITEMS"), root_1);

                        while(stream_ordered_method_item.hasNext()) {
                            this.adaptor.addChild(root_1, stream_ordered_method_item.nextTree());
                        }

                        stream_ordered_method_item.reset();
                        this.adaptor.addChild(root_0, root_1);
                        root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(108, "I_CATCHES"), root_1);

                        while(stream_catch_directive.hasNext()) {
                            this.adaptor.addChild(root_1, stream_catch_directive.nextTree());
                        }

                        stream_catch_directive.reset();

                        while(stream_catchall_directive.hasNext()) {
                            this.adaptor.addChild(root_1, stream_catchall_directive.nextTree());
                        }

                        stream_catchall_directive.reset();
                        this.adaptor.addChild(root_0, root_1);
                        root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(134, "I_PARAMETERS"), root_1);

                        while(stream_parameter_directive.hasNext()) {
                            this.adaptor.addChild(root_1, stream_parameter_directive.nextTree());
                        }

                        stream_parameter_directive.reset();
                        this.adaptor.addChild(root_0, root_1);
                        this.adaptor.addChild(root_0, this.buildTree(100, "I_ANNOTATIONS", ((statements_and_directives_scope)this.statements_and_directives_stack.peek()).methodAnnotations));
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                        return retval;
                }
            }
        } catch (RecognitionException var20) {
            RecognitionException re = var20;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
        } finally {
            this.statements_and_directives_stack.pop();
        }

        return retval;
    }

    public final ordered_method_item_return ordered_method_item() throws RecognitionException {
        ordered_method_item_return retval = new ordered_method_item_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        ParserRuleReturnScope label42 = null;
        ParserRuleReturnScope instruction43 = null;
        ParserRuleReturnScope debug_directive44 = null;

        try {
            try {
                int alt8 = 0;
                switch (this.input.LA(1)) {
                    case 7:
                    case 44:
                    case 45:
                    case 46:
                    case 47:
                    case 48:
                    case 49:
                    case 50:
                    case 51:
                    case 52:
                    case 53:
                    case 54:
                    case 55:
                    case 56:
                    case 57:
                    case 58:
                    case 59:
                    case 60:
                    case 61:
                    case 62:
                    case 63:
                    case 64:
                    case 65:
                    case 66:
                    case 67:
                    case 68:
                    case 69:
                    case 70:
                    case 71:
                    case 72:
                    case 73:
                    case 74:
                    case 75:
                    case 76:
                    case 77:
                    case 78:
                    case 79:
                    case 80:
                    case 81:
                    case 82:
                    case 83:
                    case 84:
                    case 85:
                    case 86:
                    case 87:
                    case 88:
                    case 89:
                    case 90:
                    case 91:
                    case 92:
                    case 93:
                    case 94:
                    case 198:
                    case 210:
                        alt8 = 2;
                        break;
                    case 8:
                    case 9:
                    case 10:
                    case 11:
                    case 12:
                    case 13:
                    case 14:
                    case 15:
                    case 16:
                    case 17:
                    case 18:
                    case 19:
                    case 21:
                    case 22:
                    case 23:
                    case 24:
                    case 25:
                    case 26:
                    case 27:
                    case 29:
                    case 30:
                    case 31:
                    case 32:
                    case 33:
                    case 34:
                    case 36:
                    case 37:
                    case 38:
                    case 39:
                    case 40:
                    case 41:
                    case 42:
                    case 43:
                    case 95:
                    case 96:
                    case 97:
                    case 98:
                    case 99:
                    case 100:
                    case 101:
                    case 102:
                    case 103:
                    case 104:
                    case 105:
                    case 106:
                    case 107:
                    case 108:
                    case 109:
                    case 110:
                    case 111:
                    case 112:
                    case 113:
                    case 114:
                    case 115:
                    case 116:
                    case 117:
                    case 118:
                    case 119:
                    case 120:
                    case 121:
                    case 122:
                    case 123:
                    case 124:
                    case 125:
                    case 126:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 131:
                    case 132:
                    case 133:
                    case 134:
                    case 135:
                    case 136:
                    case 137:
                    case 138:
                    case 139:
                    case 140:
                    case 141:
                    case 142:
                    case 143:
                    case 144:
                    case 145:
                    case 146:
                    case 147:
                    case 148:
                    case 149:
                    case 150:
                    case 151:
                    case 152:
                    case 153:
                    case 154:
                    case 155:
                    case 156:
                    case 157:
                    case 158:
                    case 159:
                    case 160:
                    case 161:
                    case 162:
                    case 163:
                    case 164:
                    case 165:
                    case 166:
                    case 167:
                    case 168:
                    case 169:
                    case 170:
                    case 171:
                    case 172:
                    case 173:
                    case 174:
                    case 175:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 180:
                    case 181:
                    case 182:
                    case 183:
                    case 184:
                    case 185:
                    case 187:
                    case 189:
                    case 190:
                    case 191:
                    case 192:
                    case 193:
                    case 194:
                    case 195:
                    case 196:
                    case 197:
                    case 199:
                    case 200:
                    case 201:
                    case 202:
                    case 204:
                    case 205:
                    case 207:
                    case 208:
                    default:
                        NoViableAltException nvae = new NoViableAltException("", 8, 0, this.input);
                        throw nvae;
                    case 20:
                        alt8 = 1;
                        break;
                    case 28:
                    case 35:
                    case 186:
                    case 188:
                    case 203:
                    case 206:
                    case 209:
                        alt8 = 3;
                }

                switch (alt8) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_label_in_ordered_method_item1784);
                        label42 = this.label();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, label42.getTree());
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_instruction_in_ordered_method_item1790);
                        instruction43 = this.instruction();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, instruction43.getTree());
                        break;
                    case 3:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_debug_directive_in_ordered_method_item1796);
                        debug_directive44 = this.debug_directive();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, debug_directive44.getTree());
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var11) {
                RecognitionException re = var11;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final registers_directive_return registers_directive() throws RecognitionException {
        registers_directive_return retval = new registers_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token directive = null;
        ParserRuleReturnScope regCount = null;
        ParserRuleReturnScope regCount2 = null;
        CommonTree directive_tree = null;
        RewriteRuleTokenStream stream_LOCALS_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token LOCALS_DIRECTIVE");
        RewriteRuleTokenStream stream_REGISTERS_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token REGISTERS_DIRECTIVE");
        RewriteRuleSubtreeStream stream_integral_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule integral_literal");

        try {
            try {
                int alt9 = 0;
                int LA9_0 = this.input.LA(1);
                if (LA9_0 == 205) {
                    alt9 = 1;
                } else {
                    if (LA9_0 != 187) {
                        NoViableAltException nvae = new NoViableAltException("", 9, 0, this.input);
                        throw nvae;
                    }

                    alt9 = 2;
                }

                RewriteRuleSubtreeStream stream_regCount2;
                CommonTree root_1;
                switch (alt9) {
                    case 1:
                        directive = (Token)this.match(this.input, 205, FOLLOW_REGISTERS_DIRECTIVE_in_registers_directive1816);
                        stream_REGISTERS_DIRECTIVE.add(directive);
                        this.pushFollow(FOLLOW_integral_literal_in_registers_directive1820);
                        regCount = this.integral_literal();
                        --this.state._fsp;
                        stream_integral_literal.add(regCount.getTree());
                        retval.tree = root_0;
                        stream_regCount2 = new RewriteRuleSubtreeStream(this.adaptor, "rule regCount", regCount != null ? regCount.getTree() : null);
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(137, directive, "I_REGISTERS"), root_1);
                        this.adaptor.addChild(root_1, stream_regCount2.nextTree());
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                        break;
                    case 2:
                        directive = (Token)this.match(this.input, 187, FOLLOW_LOCALS_DIRECTIVE_in_registers_directive1840);
                        stream_LOCALS_DIRECTIVE.add(directive);
                        this.pushFollow(FOLLOW_integral_literal_in_registers_directive1844);
                        regCount2 = this.integral_literal();
                        --this.state._fsp;
                        stream_integral_literal.add(regCount2.getTree());
                        retval.tree = root_0;
                        stream_regCount2 = new RewriteRuleSubtreeStream(this.adaptor, "rule regCount2", regCount2 != null ? regCount2.getTree() : null);
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(125, directive, "I_LOCALS"), root_1);
                        this.adaptor.addChild(root_1, stream_regCount2.nextTree());
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                }

                if (((statements_and_directives_scope)this.statements_and_directives_stack.peek()).hasRegistersDirective) {
                    throw new SemanticException(this.input, directive, "There can only be a single .registers or .locals directive in a method", new Object[0]);
                }

                ((statements_and_directives_scope)this.statements_and_directives_stack.peek()).hasRegistersDirective = true;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var18) {
                RecognitionException re = var18;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final param_list_or_id_return param_list_or_id() throws RecognitionException {
        param_list_or_id_return retval = new param_list_or_id_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token PARAM_LIST_OR_ID_PRIMITIVE_TYPE45 = null;
        CommonTree PARAM_LIST_OR_ID_PRIMITIVE_TYPE45_tree = null;

        try {
            root_0 = (CommonTree)this.adaptor.nil();
            int cnt10 = 0;

            while(true) {
                int alt10 = 2;
                int LA10_0 = this.input.LA(1);
                if (LA10_0 == 200) {
                    alt10 = 1;
                }

                switch (alt10) {
                    case 1:
                        PARAM_LIST_OR_ID_PRIMITIVE_TYPE45 = (Token)this.match(this.input, 200, FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id1876);
                        PARAM_LIST_OR_ID_PRIMITIVE_TYPE45_tree = (CommonTree)this.adaptor.create(PARAM_LIST_OR_ID_PRIMITIVE_TYPE45);
                        this.adaptor.addChild(root_0, PARAM_LIST_OR_ID_PRIMITIVE_TYPE45_tree);
                        ++cnt10;
                        break;
                    default:
                        if (cnt10 < 1) {
                            EarlyExitException eee = new EarlyExitException(10, this.input);
                            throw eee;
                        }

                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                        return retval;
                }
            }
        } catch (RecognitionException var12) {
            RecognitionException re = var12;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            return retval;
        } finally {
            ;
        }
    }

    public final simple_name_return simple_name() throws RecognitionException {
        simple_name_return retval = new simple_name_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token SIMPLE_NAME46 = null;
        Token ACCESS_SPEC47 = null;
        Token HIDDENAPI_RESTRICTION48 = null;
        Token VERIFICATION_ERROR_TYPE49 = null;
        Token POSITIVE_INTEGER_LITERAL50 = null;
        Token NEGATIVE_INTEGER_LITERAL51 = null;
        Token FLOAT_LITERAL_OR_ID52 = null;
        Token DOUBLE_LITERAL_OR_ID53 = null;
        Token BOOL_LITERAL54 = null;
        Token NULL_LITERAL55 = null;
        Token REGISTER56 = null;
        Token PRIMITIVE_TYPE58 = null;
        Token VOID_TYPE59 = null;
        Token ANNOTATION_VISIBILITY60 = null;
        Token METHOD_HANDLE_TYPE_FIELD61 = null;
        Token METHOD_HANDLE_TYPE_METHOD62 = null;
        Token INSTRUCTION_FORMAT10t63 = null;
        Token INSTRUCTION_FORMAT10x64 = null;
        Token INSTRUCTION_FORMAT10x_ODEX65 = null;
        Token INSTRUCTION_FORMAT11x66 = null;
        Token INSTRUCTION_FORMAT12x_OR_ID67 = null;
        Token INSTRUCTION_FORMAT21c_FIELD68 = null;
        Token INSTRUCTION_FORMAT21c_FIELD_ODEX69 = null;
        Token INSTRUCTION_FORMAT21c_METHOD_HANDLE70 = null;
        Token INSTRUCTION_FORMAT21c_METHOD_TYPE71 = null;
        Token INSTRUCTION_FORMAT21c_STRING72 = null;
        Token INSTRUCTION_FORMAT21c_TYPE73 = null;
        Token INSTRUCTION_FORMAT21t74 = null;
        Token INSTRUCTION_FORMAT22c_FIELD75 = null;
        Token INSTRUCTION_FORMAT22c_FIELD_ODEX76 = null;
        Token INSTRUCTION_FORMAT22c_TYPE77 = null;
        Token INSTRUCTION_FORMAT22cs_FIELD78 = null;
        Token INSTRUCTION_FORMAT22s_OR_ID79 = null;
        Token INSTRUCTION_FORMAT22t80 = null;
        Token INSTRUCTION_FORMAT23x81 = null;
        Token INSTRUCTION_FORMAT31i_OR_ID82 = null;
        Token INSTRUCTION_FORMAT31t83 = null;
        Token INSTRUCTION_FORMAT35c_CALL_SITE84 = null;
        Token INSTRUCTION_FORMAT35c_METHOD85 = null;
        Token INSTRUCTION_FORMAT35c_METHOD_ODEX86 = null;
        Token INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE87 = null;
        Token INSTRUCTION_FORMAT35c_TYPE88 = null;
        Token INSTRUCTION_FORMAT35mi_METHOD89 = null;
        Token INSTRUCTION_FORMAT35ms_METHOD90 = null;
        Token INSTRUCTION_FORMAT45cc_METHOD91 = null;
        Token INSTRUCTION_FORMAT4rcc_METHOD92 = null;
        Token INSTRUCTION_FORMAT51l93 = null;
        ParserRuleReturnScope param_list_or_id57 = null;
        CommonTree SIMPLE_NAME46_tree = null;
        CommonTree ACCESS_SPEC47_tree = null;
        CommonTree HIDDENAPI_RESTRICTION48_tree = null;
        CommonTree VERIFICATION_ERROR_TYPE49_tree = null;
        CommonTree POSITIVE_INTEGER_LITERAL50_tree = null;
        CommonTree NEGATIVE_INTEGER_LITERAL51_tree = null;
        CommonTree FLOAT_LITERAL_OR_ID52_tree = null;
        CommonTree DOUBLE_LITERAL_OR_ID53_tree = null;
        CommonTree BOOL_LITERAL54_tree = null;
        CommonTree NULL_LITERAL55_tree = null;
        CommonTree REGISTER56_tree = null;
        CommonTree PRIMITIVE_TYPE58_tree = null;
        CommonTree VOID_TYPE59_tree = null;
        CommonTree ANNOTATION_VISIBILITY60_tree = null;
        CommonTree METHOD_HANDLE_TYPE_FIELD61_tree = null;
        CommonTree METHOD_HANDLE_TYPE_METHOD62_tree = null;
        CommonTree INSTRUCTION_FORMAT10t63_tree = null;
        CommonTree INSTRUCTION_FORMAT10x64_tree = null;
        CommonTree INSTRUCTION_FORMAT10x_ODEX65_tree = null;
        CommonTree INSTRUCTION_FORMAT11x66_tree = null;
        CommonTree INSTRUCTION_FORMAT12x_OR_ID67_tree = null;
        CommonTree INSTRUCTION_FORMAT21c_FIELD68_tree = null;
        CommonTree INSTRUCTION_FORMAT21c_FIELD_ODEX69_tree = null;
        CommonTree INSTRUCTION_FORMAT21c_METHOD_HANDLE70_tree = null;
        CommonTree INSTRUCTION_FORMAT21c_METHOD_TYPE71_tree = null;
        CommonTree INSTRUCTION_FORMAT21c_STRING72_tree = null;
        CommonTree INSTRUCTION_FORMAT21c_TYPE73_tree = null;
        CommonTree INSTRUCTION_FORMAT21t74_tree = null;
        CommonTree INSTRUCTION_FORMAT22c_FIELD75_tree = null;
        CommonTree INSTRUCTION_FORMAT22c_FIELD_ODEX76_tree = null;
        CommonTree INSTRUCTION_FORMAT22c_TYPE77_tree = null;
        CommonTree INSTRUCTION_FORMAT22cs_FIELD78_tree = null;
        CommonTree INSTRUCTION_FORMAT22s_OR_ID79_tree = null;
        CommonTree INSTRUCTION_FORMAT22t80_tree = null;
        CommonTree INSTRUCTION_FORMAT23x81_tree = null;
        CommonTree INSTRUCTION_FORMAT31i_OR_ID82_tree = null;
        CommonTree INSTRUCTION_FORMAT31t83_tree = null;
        CommonTree INSTRUCTION_FORMAT35c_CALL_SITE84_tree = null;
        CommonTree INSTRUCTION_FORMAT35c_METHOD85_tree = null;
        CommonTree INSTRUCTION_FORMAT35c_METHOD_ODEX86_tree = null;
        CommonTree INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE87_tree = null;
        CommonTree INSTRUCTION_FORMAT35c_TYPE88_tree = null;
        CommonTree INSTRUCTION_FORMAT35mi_METHOD89_tree = null;
        CommonTree INSTRUCTION_FORMAT35ms_METHOD90_tree = null;
        CommonTree INSTRUCTION_FORMAT45cc_METHOD91_tree = null;
        CommonTree INSTRUCTION_FORMAT4rcc_METHOD92_tree = null;
        CommonTree INSTRUCTION_FORMAT51l93_tree = null;
        RewriteRuleTokenStream stream_HIDDENAPI_RESTRICTION = new RewriteRuleTokenStream(this.adaptor, "token HIDDENAPI_RESTRICTION");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE");
        RewriteRuleTokenStream stream_ANNOTATION_VISIBILITY = new RewriteRuleTokenStream(this.adaptor, "token ANNOTATION_VISIBILITY");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_TYPE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21c_TYPE");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22t = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22t");
        RewriteRuleTokenStream stream_VOID_TYPE = new RewriteRuleTokenStream(this.adaptor, "token VOID_TYPE");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10t = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT10t");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35mi_METHOD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT35mi_METHOD");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22s_OR_ID = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22s_OR_ID");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22cs_FIELD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22cs_FIELD");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT12x_OR_ID = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT12x_OR_ID");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35ms_METHOD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT35ms_METHOD");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT35c_METHOD");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT45cc_METHOD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT45cc_METHOD");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_TYPE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT35c_TYPE");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT10x");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_METHOD_HANDLE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21c_METHOD_HANDLE");
        RewriteRuleTokenStream stream_FLOAT_LITERAL_OR_ID = new RewriteRuleTokenStream(this.adaptor, "token FLOAT_LITERAL_OR_ID");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_TYPE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22c_TYPE");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_STRING = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21c_STRING");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD_ODEX = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT35c_METHOD_ODEX");
        RewriteRuleTokenStream stream_NEGATIVE_INTEGER_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token NEGATIVE_INTEGER_LITERAL");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD_ODEX = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22c_FIELD_ODEX");
        RewriteRuleTokenStream stream_DOUBLE_LITERAL_OR_ID = new RewriteRuleTokenStream(this.adaptor, "token DOUBLE_LITERAL_OR_ID");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31i_OR_ID = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT31i_OR_ID");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21t = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21t");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31t = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT31t");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT23x = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT23x");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_CALL_SITE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT35c_CALL_SITE");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT51l = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT51l");
        RewriteRuleTokenStream stream_POSITIVE_INTEGER_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token POSITIVE_INTEGER_LITERAL");
        RewriteRuleTokenStream stream_BOOL_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token BOOL_LITERAL");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x_ODEX = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT10x_ODEX");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21c_FIELD");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22c_FIELD");
        RewriteRuleTokenStream stream_VERIFICATION_ERROR_TYPE = new RewriteRuleTokenStream(this.adaptor, "token VERIFICATION_ERROR_TYPE");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11x = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT11x");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_METHOD_TYPE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21c_METHOD_TYPE");
        RewriteRuleTokenStream stream_ACCESS_SPEC = new RewriteRuleTokenStream(this.adaptor, "token ACCESS_SPEC");
        RewriteRuleTokenStream stream_NULL_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token NULL_LITERAL");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT4rcc_METHOD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT4rcc_METHOD");
        RewriteRuleTokenStream stream_PRIMITIVE_TYPE = new RewriteRuleTokenStream(this.adaptor, "token PRIMITIVE_TYPE");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD_ODEX = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21c_FIELD_ODEX");
        RewriteRuleSubtreeStream stream_param_list_or_id = new RewriteRuleSubtreeStream(this.adaptor, "rule param_list_or_id");

        try {
            try {
                int alt11 = 0;
                switch (this.input.LA(1)) {
                    case 4:
                        alt11 = 2;
                        break;
                    case 5:
                    case 7:
                    case 8:
                    case 9:
                    case 10:
                    case 12:
                    case 13:
                    case 14:
                    case 15:
                    case 16:
                    case 17:
                    case 18:
                    case 19:
                    case 20:
                    case 21:
                    case 22:
                    case 23:
                    case 25:
                    case 26:
                    case 27:
                    case 28:
                    case 29:
                    case 30:
                    case 31:
                    case 32:
                    case 33:
                    case 34:
                    case 35:
                    case 36:
                    case 37:
                    case 38:
                    case 39:
                    case 42:
                    case 43:
                    case 47:
                    case 49:
                    case 51:
                    case 52:
                    case 59:
                    case 60:
                    case 61:
                    case 63:
                    case 68:
                    case 71:
                    case 73:
                    case 74:
                    case 75:
                    case 78:
                    case 86:
                    case 87:
                    case 88:
                    case 89:
                    case 90:
                    case 91:
                    case 95:
                    case 96:
                    case 97:
                    case 98:
                    case 99:
                    case 100:
                    case 101:
                    case 102:
                    case 103:
                    case 104:
                    case 105:
                    case 106:
                    case 107:
                    case 108:
                    case 109:
                    case 110:
                    case 111:
                    case 112:
                    case 113:
                    case 114:
                    case 115:
                    case 116:
                    case 117:
                    case 118:
                    case 119:
                    case 120:
                    case 121:
                    case 122:
                    case 123:
                    case 124:
                    case 125:
                    case 126:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 131:
                    case 132:
                    case 133:
                    case 134:
                    case 135:
                    case 136:
                    case 137:
                    case 138:
                    case 139:
                    case 140:
                    case 141:
                    case 142:
                    case 143:
                    case 144:
                    case 145:
                    case 146:
                    case 147:
                    case 148:
                    case 149:
                    case 150:
                    case 151:
                    case 152:
                    case 153:
                    case 154:
                    case 155:
                    case 156:
                    case 157:
                    case 158:
                    case 159:
                    case 160:
                    case 161:
                    case 162:
                    case 163:
                    case 164:
                    case 165:
                    case 166:
                    case 167:
                    case 168:
                    case 169:
                    case 170:
                    case 171:
                    case 172:
                    case 173:
                    case 174:
                    case 175:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 180:
                    case 181:
                    case 182:
                    case 183:
                    case 184:
                    case 185:
                    case 186:
                    case 187:
                    case 188:
                    case 189:
                    case 190:
                    case 191:
                    case 196:
                    case 197:
                    case 198:
                    case 199:
                    case 203:
                    case 205:
                    case 206:
                    case 207:
                    case 209:
                    case 210:
                    case 211:
                    case 212:
                    case 213:
                    default:
                        NoViableAltException nvae = new NoViableAltException("", 11, 0, this.input);
                        throw nvae;
                    case 6:
                        alt11 = 15;
                        break;
                    case 11:
                        alt11 = 9;
                        break;
                    case 24:
                        alt11 = 8;
                        break;
                    case 40:
                        alt11 = 7;
                        break;
                    case 41:
                        alt11 = 3;
                        break;
                    case 44:
                        alt11 = 18;
                        break;
                    case 45:
                        alt11 = 19;
                        break;
                    case 46:
                        alt11 = 20;
                        break;
                    case 48:
                        alt11 = 21;
                        break;
                    case 50:
                        alt11 = 22;
                        break;
                    case 53:
                        alt11 = 23;
                        break;
                    case 54:
                        alt11 = 24;
                        break;
                    case 55:
                        alt11 = 25;
                        break;
                    case 56:
                        alt11 = 26;
                        break;
                    case 57:
                        alt11 = 27;
                        break;
                    case 58:
                        alt11 = 28;
                        break;
                    case 62:
                        alt11 = 29;
                        break;
                    case 64:
                        alt11 = 30;
                        break;
                    case 65:
                        alt11 = 31;
                        break;
                    case 66:
                        alt11 = 32;
                        break;
                    case 67:
                        alt11 = 33;
                        break;
                    case 69:
                        alt11 = 34;
                        break;
                    case 70:
                        alt11 = 35;
                        break;
                    case 72:
                        alt11 = 36;
                        break;
                    case 76:
                        alt11 = 37;
                        break;
                    case 77:
                        alt11 = 38;
                        break;
                    case 79:
                        alt11 = 39;
                        break;
                    case 80:
                        alt11 = 40;
                        break;
                    case 81:
                        alt11 = 41;
                        break;
                    case 82:
                        alt11 = 42;
                        break;
                    case 83:
                        alt11 = 43;
                        break;
                    case 84:
                        alt11 = 44;
                        break;
                    case 85:
                        alt11 = 45;
                        break;
                    case 92:
                        alt11 = 46;
                        break;
                    case 93:
                        alt11 = 47;
                        break;
                    case 94:
                        alt11 = 48;
                        break;
                    case 192:
                        alt11 = 16;
                        break;
                    case 193:
                        alt11 = 17;
                        break;
                    case 194:
                        alt11 = 6;
                        break;
                    case 195:
                        alt11 = 10;
                        break;
                    case 200:
                        alt11 = 12;
                        break;
                    case 201:
                        alt11 = 5;
                        break;
                    case 202:
                        alt11 = 13;
                        break;
                    case 204:
                        alt11 = 11;
                        break;
                    case 208:
                        alt11 = 1;
                        break;
                    case 214:
                        alt11 = 4;
                        break;
                    case 215:
                        alt11 = 14;
                }

                switch (alt11) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        SIMPLE_NAME46 = (Token)this.match(this.input, 208, FOLLOW_SIMPLE_NAME_in_simple_name1889);
                        SIMPLE_NAME46_tree = (CommonTree)this.adaptor.create(SIMPLE_NAME46);
                        this.adaptor.addChild(root_0, SIMPLE_NAME46_tree);
                        break;
                    case 2:
                        ACCESS_SPEC47 = (Token)this.match(this.input, 4, FOLLOW_ACCESS_SPEC_in_simple_name1895);
                        stream_ACCESS_SPEC.add(ACCESS_SPEC47);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, ACCESS_SPEC47));
                        retval.tree = root_0;
                        break;
                    case 3:
                        HIDDENAPI_RESTRICTION48 = (Token)this.match(this.input, 41, FOLLOW_HIDDENAPI_RESTRICTION_in_simple_name1906);
                        stream_HIDDENAPI_RESTRICTION.add(HIDDENAPI_RESTRICTION48);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, HIDDENAPI_RESTRICTION48));
                        retval.tree = root_0;
                        break;
                    case 4:
                        VERIFICATION_ERROR_TYPE49 = (Token)this.match(this.input, 214, FOLLOW_VERIFICATION_ERROR_TYPE_in_simple_name1917);
                        stream_VERIFICATION_ERROR_TYPE.add(VERIFICATION_ERROR_TYPE49);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, VERIFICATION_ERROR_TYPE49));
                        retval.tree = root_0;
                        break;
                    case 5:
                        POSITIVE_INTEGER_LITERAL50 = (Token)this.match(this.input, 201, FOLLOW_POSITIVE_INTEGER_LITERAL_in_simple_name1928);
                        stream_POSITIVE_INTEGER_LITERAL.add(POSITIVE_INTEGER_LITERAL50);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, POSITIVE_INTEGER_LITERAL50));
                        retval.tree = root_0;
                        break;
                    case 6:
                        NEGATIVE_INTEGER_LITERAL51 = (Token)this.match(this.input, 194, FOLLOW_NEGATIVE_INTEGER_LITERAL_in_simple_name1939);
                        stream_NEGATIVE_INTEGER_LITERAL.add(NEGATIVE_INTEGER_LITERAL51);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, NEGATIVE_INTEGER_LITERAL51));
                        retval.tree = root_0;
                        break;
                    case 7:
                        FLOAT_LITERAL_OR_ID52 = (Token)this.match(this.input, 40, FOLLOW_FLOAT_LITERAL_OR_ID_in_simple_name1950);
                        stream_FLOAT_LITERAL_OR_ID.add(FLOAT_LITERAL_OR_ID52);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, FLOAT_LITERAL_OR_ID52));
                        retval.tree = root_0;
                        break;
                    case 8:
                        DOUBLE_LITERAL_OR_ID53 = (Token)this.match(this.input, 24, FOLLOW_DOUBLE_LITERAL_OR_ID_in_simple_name1961);
                        stream_DOUBLE_LITERAL_OR_ID.add(DOUBLE_LITERAL_OR_ID53);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, DOUBLE_LITERAL_OR_ID53));
                        retval.tree = root_0;
                        break;
                    case 9:
                        BOOL_LITERAL54 = (Token)this.match(this.input, 11, FOLLOW_BOOL_LITERAL_in_simple_name1972);
                        stream_BOOL_LITERAL.add(BOOL_LITERAL54);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, BOOL_LITERAL54));
                        retval.tree = root_0;
                        break;
                    case 10:
                        NULL_LITERAL55 = (Token)this.match(this.input, 195, FOLLOW_NULL_LITERAL_in_simple_name1983);
                        stream_NULL_LITERAL.add(NULL_LITERAL55);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, NULL_LITERAL55));
                        retval.tree = root_0;
                        break;
                    case 11:
                        REGISTER56 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_simple_name1994);
                        stream_REGISTER.add(REGISTER56);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, REGISTER56));
                        retval.tree = root_0;
                        break;
                    case 12:
                        this.pushFollow(FOLLOW_param_list_or_id_in_simple_name2005);
                        param_list_or_id57 = this.param_list_or_id();
                        --this.state._fsp;
                        stream_param_list_or_id.add(param_list_or_id57.getTree());
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, this.adaptor.create(208, param_list_or_id57 != null ? this.input.toString(param_list_or_id57.start, param_list_or_id57.stop) : null));
                        retval.tree = root_0;
                        break;
                    case 13:
                        PRIMITIVE_TYPE58 = (Token)this.match(this.input, 202, FOLLOW_PRIMITIVE_TYPE_in_simple_name2015);
                        stream_PRIMITIVE_TYPE.add(PRIMITIVE_TYPE58);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, PRIMITIVE_TYPE58));
                        retval.tree = root_0;
                        break;
                    case 14:
                        VOID_TYPE59 = (Token)this.match(this.input, 215, FOLLOW_VOID_TYPE_in_simple_name2026);
                        stream_VOID_TYPE.add(VOID_TYPE59);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, VOID_TYPE59));
                        retval.tree = root_0;
                        break;
                    case 15:
                        ANNOTATION_VISIBILITY60 = (Token)this.match(this.input, 6, FOLLOW_ANNOTATION_VISIBILITY_in_simple_name2037);
                        stream_ANNOTATION_VISIBILITY.add(ANNOTATION_VISIBILITY60);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, ANNOTATION_VISIBILITY60));
                        retval.tree = root_0;
                        break;
                    case 16:
                        root_0 = (CommonTree)this.adaptor.nil();
                        METHOD_HANDLE_TYPE_FIELD61 = (Token)this.match(this.input, 192, FOLLOW_METHOD_HANDLE_TYPE_FIELD_in_simple_name2048);
                        METHOD_HANDLE_TYPE_FIELD61_tree = (CommonTree)this.adaptor.create(METHOD_HANDLE_TYPE_FIELD61);
                        this.adaptor.addChild(root_0, METHOD_HANDLE_TYPE_FIELD61_tree);
                        break;
                    case 17:
                        root_0 = (CommonTree)this.adaptor.nil();
                        METHOD_HANDLE_TYPE_METHOD62 = (Token)this.match(this.input, 193, FOLLOW_METHOD_HANDLE_TYPE_METHOD_in_simple_name2054);
                        METHOD_HANDLE_TYPE_METHOD62_tree = (CommonTree)this.adaptor.create(METHOD_HANDLE_TYPE_METHOD62);
                        this.adaptor.addChild(root_0, METHOD_HANDLE_TYPE_METHOD62_tree);
                        break;
                    case 18:
                        INSTRUCTION_FORMAT10t63 = (Token)this.match(this.input, 44, FOLLOW_INSTRUCTION_FORMAT10t_in_simple_name2060);
                        stream_INSTRUCTION_FORMAT10t.add(INSTRUCTION_FORMAT10t63);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT10t63));
                        retval.tree = root_0;
                        break;
                    case 19:
                        INSTRUCTION_FORMAT10x64 = (Token)this.match(this.input, 45, FOLLOW_INSTRUCTION_FORMAT10x_in_simple_name2071);
                        stream_INSTRUCTION_FORMAT10x.add(INSTRUCTION_FORMAT10x64);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT10x64));
                        retval.tree = root_0;
                        break;
                    case 20:
                        INSTRUCTION_FORMAT10x_ODEX65 = (Token)this.match(this.input, 46, FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_simple_name2082);
                        stream_INSTRUCTION_FORMAT10x_ODEX.add(INSTRUCTION_FORMAT10x_ODEX65);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT10x_ODEX65));
                        retval.tree = root_0;
                        break;
                    case 21:
                        INSTRUCTION_FORMAT11x66 = (Token)this.match(this.input, 48, FOLLOW_INSTRUCTION_FORMAT11x_in_simple_name2093);
                        stream_INSTRUCTION_FORMAT11x.add(INSTRUCTION_FORMAT11x66);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT11x66));
                        retval.tree = root_0;
                        break;
                    case 22:
                        INSTRUCTION_FORMAT12x_OR_ID67 = (Token)this.match(this.input, 50, FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_simple_name2104);
                        stream_INSTRUCTION_FORMAT12x_OR_ID.add(INSTRUCTION_FORMAT12x_OR_ID67);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT12x_OR_ID67));
                        retval.tree = root_0;
                        break;
                    case 23:
                        INSTRUCTION_FORMAT21c_FIELD68 = (Token)this.match(this.input, 53, FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_simple_name2115);
                        stream_INSTRUCTION_FORMAT21c_FIELD.add(INSTRUCTION_FORMAT21c_FIELD68);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT21c_FIELD68));
                        retval.tree = root_0;
                        break;
                    case 24:
                        INSTRUCTION_FORMAT21c_FIELD_ODEX69 = (Token)this.match(this.input, 54, FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_simple_name2126);
                        stream_INSTRUCTION_FORMAT21c_FIELD_ODEX.add(INSTRUCTION_FORMAT21c_FIELD_ODEX69);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT21c_FIELD_ODEX69));
                        retval.tree = root_0;
                        break;
                    case 25:
                        INSTRUCTION_FORMAT21c_METHOD_HANDLE70 = (Token)this.match(this.input, 55, FOLLOW_INSTRUCTION_FORMAT21c_METHOD_HANDLE_in_simple_name2137);
                        stream_INSTRUCTION_FORMAT21c_METHOD_HANDLE.add(INSTRUCTION_FORMAT21c_METHOD_HANDLE70);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT21c_METHOD_HANDLE70));
                        retval.tree = root_0;
                        break;
                    case 26:
                        INSTRUCTION_FORMAT21c_METHOD_TYPE71 = (Token)this.match(this.input, 56, FOLLOW_INSTRUCTION_FORMAT21c_METHOD_TYPE_in_simple_name2148);
                        stream_INSTRUCTION_FORMAT21c_METHOD_TYPE.add(INSTRUCTION_FORMAT21c_METHOD_TYPE71);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT21c_METHOD_TYPE71));
                        retval.tree = root_0;
                        break;
                    case 27:
                        INSTRUCTION_FORMAT21c_STRING72 = (Token)this.match(this.input, 57, FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_simple_name2159);
                        stream_INSTRUCTION_FORMAT21c_STRING.add(INSTRUCTION_FORMAT21c_STRING72);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT21c_STRING72));
                        retval.tree = root_0;
                        break;
                    case 28:
                        INSTRUCTION_FORMAT21c_TYPE73 = (Token)this.match(this.input, 58, FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_simple_name2170);
                        stream_INSTRUCTION_FORMAT21c_TYPE.add(INSTRUCTION_FORMAT21c_TYPE73);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT21c_TYPE73));
                        retval.tree = root_0;
                        break;
                    case 29:
                        INSTRUCTION_FORMAT21t74 = (Token)this.match(this.input, 62, FOLLOW_INSTRUCTION_FORMAT21t_in_simple_name2181);
                        stream_INSTRUCTION_FORMAT21t.add(INSTRUCTION_FORMAT21t74);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT21t74));
                        retval.tree = root_0;
                        break;
                    case 30:
                        INSTRUCTION_FORMAT22c_FIELD75 = (Token)this.match(this.input, 64, FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_simple_name2192);
                        stream_INSTRUCTION_FORMAT22c_FIELD.add(INSTRUCTION_FORMAT22c_FIELD75);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT22c_FIELD75));
                        retval.tree = root_0;
                        break;
                    case 31:
                        INSTRUCTION_FORMAT22c_FIELD_ODEX76 = (Token)this.match(this.input, 65, FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_simple_name2203);
                        stream_INSTRUCTION_FORMAT22c_FIELD_ODEX.add(INSTRUCTION_FORMAT22c_FIELD_ODEX76);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT22c_FIELD_ODEX76));
                        retval.tree = root_0;
                        break;
                    case 32:
                        INSTRUCTION_FORMAT22c_TYPE77 = (Token)this.match(this.input, 66, FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_simple_name2214);
                        stream_INSTRUCTION_FORMAT22c_TYPE.add(INSTRUCTION_FORMAT22c_TYPE77);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT22c_TYPE77));
                        retval.tree = root_0;
                        break;
                    case 33:
                        INSTRUCTION_FORMAT22cs_FIELD78 = (Token)this.match(this.input, 67, FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_simple_name2225);
                        stream_INSTRUCTION_FORMAT22cs_FIELD.add(INSTRUCTION_FORMAT22cs_FIELD78);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT22cs_FIELD78));
                        retval.tree = root_0;
                        break;
                    case 34:
                        INSTRUCTION_FORMAT22s_OR_ID79 = (Token)this.match(this.input, 69, FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_simple_name2236);
                        stream_INSTRUCTION_FORMAT22s_OR_ID.add(INSTRUCTION_FORMAT22s_OR_ID79);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT22s_OR_ID79));
                        retval.tree = root_0;
                        break;
                    case 35:
                        INSTRUCTION_FORMAT22t80 = (Token)this.match(this.input, 70, FOLLOW_INSTRUCTION_FORMAT22t_in_simple_name2247);
                        stream_INSTRUCTION_FORMAT22t.add(INSTRUCTION_FORMAT22t80);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT22t80));
                        retval.tree = root_0;
                        break;
                    case 36:
                        INSTRUCTION_FORMAT23x81 = (Token)this.match(this.input, 72, FOLLOW_INSTRUCTION_FORMAT23x_in_simple_name2258);
                        stream_INSTRUCTION_FORMAT23x.add(INSTRUCTION_FORMAT23x81);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT23x81));
                        retval.tree = root_0;
                        break;
                    case 37:
                        INSTRUCTION_FORMAT31i_OR_ID82 = (Token)this.match(this.input, 76, FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_simple_name2269);
                        stream_INSTRUCTION_FORMAT31i_OR_ID.add(INSTRUCTION_FORMAT31i_OR_ID82);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT31i_OR_ID82));
                        retval.tree = root_0;
                        break;
                    case 38:
                        INSTRUCTION_FORMAT31t83 = (Token)this.match(this.input, 77, FOLLOW_INSTRUCTION_FORMAT31t_in_simple_name2280);
                        stream_INSTRUCTION_FORMAT31t.add(INSTRUCTION_FORMAT31t83);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT31t83));
                        retval.tree = root_0;
                        break;
                    case 39:
                        INSTRUCTION_FORMAT35c_CALL_SITE84 = (Token)this.match(this.input, 79, FOLLOW_INSTRUCTION_FORMAT35c_CALL_SITE_in_simple_name2291);
                        stream_INSTRUCTION_FORMAT35c_CALL_SITE.add(INSTRUCTION_FORMAT35c_CALL_SITE84);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT35c_CALL_SITE84));
                        retval.tree = root_0;
                        break;
                    case 40:
                        INSTRUCTION_FORMAT35c_METHOD85 = (Token)this.match(this.input, 80, FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_simple_name2302);
                        stream_INSTRUCTION_FORMAT35c_METHOD.add(INSTRUCTION_FORMAT35c_METHOD85);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT35c_METHOD85));
                        retval.tree = root_0;
                        break;
                    case 41:
                        INSTRUCTION_FORMAT35c_METHOD_ODEX86 = (Token)this.match(this.input, 81, FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_simple_name2313);
                        stream_INSTRUCTION_FORMAT35c_METHOD_ODEX.add(INSTRUCTION_FORMAT35c_METHOD_ODEX86);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT35c_METHOD_ODEX86));
                        retval.tree = root_0;
                        break;
                    case 42:
                        INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE87 = (Token)this.match(this.input, 82, FOLLOW_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE_in_simple_name2324);
                        stream_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE.add(INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE87);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE87));
                        retval.tree = root_0;
                        break;
                    case 43:
                        INSTRUCTION_FORMAT35c_TYPE88 = (Token)this.match(this.input, 83, FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_simple_name2335);
                        stream_INSTRUCTION_FORMAT35c_TYPE.add(INSTRUCTION_FORMAT35c_TYPE88);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT35c_TYPE88));
                        retval.tree = root_0;
                        break;
                    case 44:
                        INSTRUCTION_FORMAT35mi_METHOD89 = (Token)this.match(this.input, 84, FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_simple_name2346);
                        stream_INSTRUCTION_FORMAT35mi_METHOD.add(INSTRUCTION_FORMAT35mi_METHOD89);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT35mi_METHOD89));
                        retval.tree = root_0;
                        break;
                    case 45:
                        INSTRUCTION_FORMAT35ms_METHOD90 = (Token)this.match(this.input, 85, FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_simple_name2357);
                        stream_INSTRUCTION_FORMAT35ms_METHOD.add(INSTRUCTION_FORMAT35ms_METHOD90);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT35ms_METHOD90));
                        retval.tree = root_0;
                        break;
                    case 46:
                        INSTRUCTION_FORMAT45cc_METHOD91 = (Token)this.match(this.input, 92, FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_simple_name2368);
                        stream_INSTRUCTION_FORMAT45cc_METHOD.add(INSTRUCTION_FORMAT45cc_METHOD91);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT45cc_METHOD91));
                        retval.tree = root_0;
                        break;
                    case 47:
                        INSTRUCTION_FORMAT4rcc_METHOD92 = (Token)this.match(this.input, 93, FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_simple_name2379);
                        stream_INSTRUCTION_FORMAT4rcc_METHOD.add(INSTRUCTION_FORMAT4rcc_METHOD92);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT4rcc_METHOD92));
                        retval.tree = root_0;
                        break;
                    case 48:
                        INSTRUCTION_FORMAT51l93 = (Token)this.match(this.input, 94, FOLLOW_INSTRUCTION_FORMAT51l_in_simple_name2390);
                        stream_INSTRUCTION_FORMAT51l.add(INSTRUCTION_FORMAT51l93);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, INSTRUCTION_FORMAT51l93));
                        retval.tree = root_0;
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var148) {
                RecognitionException re = var148;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final member_name_return member_name() throws RecognitionException {
        member_name_return retval = new member_name_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token MEMBER_NAME95 = null;
        ParserRuleReturnScope simple_name94 = null;
        CommonTree MEMBER_NAME95_tree = null;
        RewriteRuleTokenStream stream_MEMBER_NAME = new RewriteRuleTokenStream(this.adaptor, "token MEMBER_NAME");

        try {
            try {
                int alt12 = 0;
                int LA12_0 = this.input.LA(1);
                if (LA12_0 != 4 && LA12_0 != 6 && LA12_0 != 11 && LA12_0 != 24 && (LA12_0 < 40 || LA12_0 > 41) && (LA12_0 < 44 || LA12_0 > 46) && LA12_0 != 48 && LA12_0 != 50 && (LA12_0 < 53 || LA12_0 > 58) && LA12_0 != 62 && (LA12_0 < 64 || LA12_0 > 67) && (LA12_0 < 69 || LA12_0 > 70) && LA12_0 != 72 && (LA12_0 < 76 || LA12_0 > 77) && (LA12_0 < 79 || LA12_0 > 85) && (LA12_0 < 92 || LA12_0 > 94) && (LA12_0 < 192 || LA12_0 > 195) && (LA12_0 < 200 || LA12_0 > 202) && LA12_0 != 204 && LA12_0 != 208 && (LA12_0 < 214 || LA12_0 > 215)) {
                    if (LA12_0 != 190) {
                        NoViableAltException nvae = new NoViableAltException("", 12, 0, this.input);
                        throw nvae;
                    }

                    alt12 = 2;
                } else {
                    alt12 = 1;
                }

                switch (alt12) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_simple_name_in_member_name2405);
                        simple_name94 = this.simple_name();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, simple_name94.getTree());
                        break;
                    case 2:
                        MEMBER_NAME95 = (Token)this.match(this.input, 190, FOLLOW_MEMBER_NAME_in_member_name2411);
                        stream_MEMBER_NAME.add(MEMBER_NAME95);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(208, MEMBER_NAME95));
                        retval.tree = root_0;
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var13) {
                RecognitionException re = var13;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final method_prototype_return method_prototype() throws RecognitionException {
        method_prototype_return retval = new method_prototype_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token OPEN_PAREN96 = null;
        Token CLOSE_PAREN98 = null;
        ParserRuleReturnScope param_list97 = null;
        ParserRuleReturnScope type_descriptor99 = null;
        CommonTree OPEN_PAREN96_tree = null;
        CommonTree CLOSE_PAREN98_tree = null;
        RewriteRuleTokenStream stream_OPEN_PAREN = new RewriteRuleTokenStream(this.adaptor, "token OPEN_PAREN");
        RewriteRuleTokenStream stream_CLOSE_PAREN = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_PAREN");
        RewriteRuleSubtreeStream stream_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule type_descriptor");
        RewriteRuleSubtreeStream stream_param_list = new RewriteRuleSubtreeStream(this.adaptor, "rule param_list");

        try {
            try {
                OPEN_PAREN96 = (Token)this.match(this.input, 197, FOLLOW_OPEN_PAREN_in_method_prototype2426);
                stream_OPEN_PAREN.add(OPEN_PAREN96);
                this.pushFollow(FOLLOW_param_list_in_method_prototype2428);
                param_list97 = this.param_list();
                --this.state._fsp;
                stream_param_list.add(param_list97.getTree());
                CLOSE_PAREN98 = (Token)this.match(this.input, 19, FOLLOW_CLOSE_PAREN_in_method_prototype2430);
                stream_CLOSE_PAREN.add(CLOSE_PAREN98);
                this.pushFollow(FOLLOW_type_descriptor_in_method_prototype2432);
                type_descriptor99 = this.type_descriptor();
                --this.state._fsp;
                stream_type_descriptor.add(type_descriptor99.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(128, retval.start, "I_METHOD_PROTOTYPE"), root_1);
                CommonTree root_2 = (CommonTree)this.adaptor.nil();
                root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(129, "I_METHOD_RETURN_TYPE"), root_2);
                this.adaptor.addChild(root_2, stream_type_descriptor.nextTree());
                this.adaptor.addChild(root_1, root_2);
                if (stream_param_list.hasNext()) {
                    this.adaptor.addChild(root_1, stream_param_list.nextTree());
                }

                stream_param_list.reset();
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final param_list_or_id_primitive_type_return param_list_or_id_primitive_type() throws RecognitionException {
        param_list_or_id_primitive_type_return retval = new param_list_or_id_primitive_type_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token PARAM_LIST_OR_ID_PRIMITIVE_TYPE100 = null;
        CommonTree PARAM_LIST_OR_ID_PRIMITIVE_TYPE100_tree = null;
        RewriteRuleTokenStream stream_PARAM_LIST_OR_ID_PRIMITIVE_TYPE = new RewriteRuleTokenStream(this.adaptor, "token PARAM_LIST_OR_ID_PRIMITIVE_TYPE");

        try {
            try {
                PARAM_LIST_OR_ID_PRIMITIVE_TYPE100 = (Token)this.match(this.input, 200, FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id_primitive_type2462);
                stream_PARAM_LIST_OR_ID_PRIMITIVE_TYPE.add(PARAM_LIST_OR_ID_PRIMITIVE_TYPE100);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(202, PARAM_LIST_OR_ID_PRIMITIVE_TYPE100));
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var10) {
                RecognitionException re = var10;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final param_list_return param_list() throws RecognitionException {
        param_list_return retval = new param_list_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        ParserRuleReturnScope param_list_or_id_primitive_type101 = null;
        ParserRuleReturnScope nonvoid_type_descriptor102 = null;

        try {
            try {
                int alt15 = 0;
                int LA15_0 = this.input.LA(1);
                if (LA15_0 == 200) {
                    alt15 = 1;
                } else {
                    if (LA15_0 != 8 && LA15_0 != 16 && LA15_0 != 19 && LA15_0 != 202) {
                        NoViableAltException nvae = new NoViableAltException("", 15, 0, this.input);
                        throw nvae;
                    }

                    alt15 = 2;
                }

                int cnt13;
                label125:
                switch (alt15) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        cnt13 = 0;

                        while(true) {
                            int alt13 = 2;
                            int LA13_0 = this.input.LA(1);
                            if (LA13_0 == 200) {
                                alt13 = 1;
                            }

                            switch (alt13) {
                                case 1:
                                    this.pushFollow(FOLLOW_param_list_or_id_primitive_type_in_param_list2477);
                                    param_list_or_id_primitive_type101 = this.param_list_or_id_primitive_type();
                                    --this.state._fsp;
                                    this.adaptor.addChild(root_0, param_list_or_id_primitive_type101.getTree());
                                    ++cnt13;
                                    break;
                                default:
                                    if (cnt13 < 1) {
                                        EarlyExitException eee = new EarlyExitException(13, this.input);
                                        throw eee;
                                    }
                                    break label125;
                            }
                        }
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();

                        label134:
                        while(true) {
                            cnt13 = 2;
                            int LA14_0 = this.input.LA(1);
                            if (LA14_0 == 8 || LA14_0 == 16 || LA14_0 == 202) {
                                cnt13 = 1;
                            }

                            switch (cnt13) {
                                case 1:
                                    this.pushFollow(FOLLOW_nonvoid_type_descriptor_in_param_list2484);
                                    nonvoid_type_descriptor102 = this.nonvoid_type_descriptor();
                                    --this.state._fsp;
                                    this.adaptor.addChild(root_0, nonvoid_type_descriptor102.getTree());
                                    break;
                                default:
                                    break label134;
                            }
                        }
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final array_descriptor_return array_descriptor() throws RecognitionException {
        array_descriptor_return retval = new array_descriptor_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token ARRAY_TYPE_PREFIX103 = null;
        Token set104 = null;
        CommonTree ARRAY_TYPE_PREFIX103_tree = null;
        CommonTree set104_tree = null;

        try {
            try {
                root_0 = (CommonTree)this.adaptor.nil();
                ARRAY_TYPE_PREFIX103 = (Token)this.match(this.input, 8, FOLLOW_ARRAY_TYPE_PREFIX_in_array_descriptor2495);
                ARRAY_TYPE_PREFIX103_tree = (CommonTree)this.adaptor.create(ARRAY_TYPE_PREFIX103);
                this.adaptor.addChild(root_0, ARRAY_TYPE_PREFIX103_tree);
                set104 = this.input.LT(1);
                if (this.input.LA(1) != 16 && this.input.LA(1) != 202) {
                    MismatchedSetException mse = new MismatchedSetException((BitSet)null, this.input);
                    throw mse;
                }

                this.input.consume();
                this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(set104));
                this.state.errorRecovery = false;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var11) {
                RecognitionException re = var11;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final type_descriptor_return type_descriptor() throws RecognitionException {
        type_descriptor_return retval = new type_descriptor_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token VOID_TYPE105 = null;
        Token PRIMITIVE_TYPE106 = null;
        Token CLASS_DESCRIPTOR107 = null;
        ParserRuleReturnScope array_descriptor108 = null;
        CommonTree VOID_TYPE105_tree = null;
        CommonTree PRIMITIVE_TYPE106_tree = null;
        CommonTree CLASS_DESCRIPTOR107_tree = null;

        try {
            try {
                int alt16 = 0;
                switch (this.input.LA(1)) {
                    case 8:
                        alt16 = 4;
                        break;
                    case 16:
                        alt16 = 3;
                        break;
                    case 202:
                        alt16 = 2;
                        break;
                    case 215:
                        alt16 = 1;
                        break;
                    default:
                        NoViableAltException nvae = new NoViableAltException("", 16, 0, this.input);
                        throw nvae;
                }

                switch (alt16) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        VOID_TYPE105 = (Token)this.match(this.input, 215, FOLLOW_VOID_TYPE_in_type_descriptor2513);
                        VOID_TYPE105_tree = (CommonTree)this.adaptor.create(VOID_TYPE105);
                        this.adaptor.addChild(root_0, VOID_TYPE105_tree);
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        PRIMITIVE_TYPE106 = (Token)this.match(this.input, 202, FOLLOW_PRIMITIVE_TYPE_in_type_descriptor2519);
                        PRIMITIVE_TYPE106_tree = (CommonTree)this.adaptor.create(PRIMITIVE_TYPE106);
                        this.adaptor.addChild(root_0, PRIMITIVE_TYPE106_tree);
                        break;
                    case 3:
                        root_0 = (CommonTree)this.adaptor.nil();
                        CLASS_DESCRIPTOR107 = (Token)this.match(this.input, 16, FOLLOW_CLASS_DESCRIPTOR_in_type_descriptor2525);
                        CLASS_DESCRIPTOR107_tree = (CommonTree)this.adaptor.create(CLASS_DESCRIPTOR107);
                        this.adaptor.addChild(root_0, CLASS_DESCRIPTOR107_tree);
                        break;
                    case 4:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_array_descriptor_in_type_descriptor2531);
                        array_descriptor108 = this.array_descriptor();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, array_descriptor108.getTree());
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var15) {
                RecognitionException re = var15;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final nonvoid_type_descriptor_return nonvoid_type_descriptor() throws RecognitionException {
        nonvoid_type_descriptor_return retval = new nonvoid_type_descriptor_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token PRIMITIVE_TYPE109 = null;
        Token CLASS_DESCRIPTOR110 = null;
        ParserRuleReturnScope array_descriptor111 = null;
        CommonTree PRIMITIVE_TYPE109_tree = null;
        CommonTree CLASS_DESCRIPTOR110_tree = null;

        try {
            try {
                int alt17 = 0;
                switch (this.input.LA(1)) {
                    case 8:
                        alt17 = 3;
                        break;
                    case 16:
                        alt17 = 2;
                        break;
                    case 202:
                        alt17 = 1;
                        break;
                    default:
                        NoViableAltException nvae = new NoViableAltException("", 17, 0, this.input);
                        throw nvae;
                }

                switch (alt17) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        PRIMITIVE_TYPE109 = (Token)this.match(this.input, 202, FOLLOW_PRIMITIVE_TYPE_in_nonvoid_type_descriptor2541);
                        PRIMITIVE_TYPE109_tree = (CommonTree)this.adaptor.create(PRIMITIVE_TYPE109);
                        this.adaptor.addChild(root_0, PRIMITIVE_TYPE109_tree);
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        CLASS_DESCRIPTOR110 = (Token)this.match(this.input, 16, FOLLOW_CLASS_DESCRIPTOR_in_nonvoid_type_descriptor2547);
                        CLASS_DESCRIPTOR110_tree = (CommonTree)this.adaptor.create(CLASS_DESCRIPTOR110);
                        this.adaptor.addChild(root_0, CLASS_DESCRIPTOR110_tree);
                        break;
                    case 3:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_array_descriptor_in_nonvoid_type_descriptor2553);
                        array_descriptor111 = this.array_descriptor();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, array_descriptor111.getTree());
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var13) {
                RecognitionException re = var13;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final reference_type_descriptor_return reference_type_descriptor() throws RecognitionException {
        reference_type_descriptor_return retval = new reference_type_descriptor_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token CLASS_DESCRIPTOR112 = null;
        ParserRuleReturnScope array_descriptor113 = null;
        CommonTree CLASS_DESCRIPTOR112_tree = null;

        try {
            try {
                int alt18 = 0;
                int LA18_0 = this.input.LA(1);
                if (LA18_0 == 16) {
                    alt18 = 1;
                } else {
                    if (LA18_0 != 8) {
                        NoViableAltException nvae = new NoViableAltException("", 18, 0, this.input);
                        throw nvae;
                    }

                    alt18 = 2;
                }

                switch (alt18) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        CLASS_DESCRIPTOR112 = (Token)this.match(this.input, 16, FOLLOW_CLASS_DESCRIPTOR_in_reference_type_descriptor2563);
                        CLASS_DESCRIPTOR112_tree = (CommonTree)this.adaptor.create(CLASS_DESCRIPTOR112);
                        this.adaptor.addChild(root_0, CLASS_DESCRIPTOR112_tree);
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_array_descriptor_in_reference_type_descriptor2569);
                        array_descriptor113 = this.array_descriptor();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, array_descriptor113.getTree());
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var12) {
                RecognitionException re = var12;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final integer_literal_return integer_literal() throws RecognitionException {
        integer_literal_return retval = new integer_literal_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token POSITIVE_INTEGER_LITERAL114 = null;
        Token NEGATIVE_INTEGER_LITERAL115 = null;
        CommonTree POSITIVE_INTEGER_LITERAL114_tree = null;
        CommonTree NEGATIVE_INTEGER_LITERAL115_tree = null;
        RewriteRuleTokenStream stream_NEGATIVE_INTEGER_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token NEGATIVE_INTEGER_LITERAL");
        RewriteRuleTokenStream stream_POSITIVE_INTEGER_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token POSITIVE_INTEGER_LITERAL");

        try {
            try {
                int alt19 = 0;
                int LA19_0 = this.input.LA(1);
                if (LA19_0 == 201) {
                    alt19 = 1;
                } else {
                    if (LA19_0 != 194) {
                        NoViableAltException nvae = new NoViableAltException("", 19, 0, this.input);
                        throw nvae;
                    }

                    alt19 = 2;
                }

                switch (alt19) {
                    case 1:
                        POSITIVE_INTEGER_LITERAL114 = (Token)this.match(this.input, 201, FOLLOW_POSITIVE_INTEGER_LITERAL_in_integer_literal2579);
                        stream_POSITIVE_INTEGER_LITERAL.add(POSITIVE_INTEGER_LITERAL114);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(95, POSITIVE_INTEGER_LITERAL114));
                        retval.tree = root_0;
                        break;
                    case 2:
                        NEGATIVE_INTEGER_LITERAL115 = (Token)this.match(this.input, 194, FOLLOW_NEGATIVE_INTEGER_LITERAL_in_integer_literal2590);
                        stream_NEGATIVE_INTEGER_LITERAL.add(NEGATIVE_INTEGER_LITERAL115);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(95, NEGATIVE_INTEGER_LITERAL115));
                        retval.tree = root_0;
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var15) {
                RecognitionException re = var15;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final float_literal_return float_literal() throws RecognitionException {
        float_literal_return retval = new float_literal_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token FLOAT_LITERAL_OR_ID116 = null;
        Token FLOAT_LITERAL117 = null;
        CommonTree FLOAT_LITERAL_OR_ID116_tree = null;
        CommonTree FLOAT_LITERAL117_tree = null;
        RewriteRuleTokenStream stream_FLOAT_LITERAL_OR_ID = new RewriteRuleTokenStream(this.adaptor, "token FLOAT_LITERAL_OR_ID");

        try {
            try {
                int alt20 = 0;
                int LA20_0 = this.input.LA(1);
                if (LA20_0 == 40) {
                    alt20 = 1;
                } else {
                    if (LA20_0 != 39) {
                        NoViableAltException nvae = new NoViableAltException("", 20, 0, this.input);
                        throw nvae;
                    }

                    alt20 = 2;
                }

                switch (alt20) {
                    case 1:
                        FLOAT_LITERAL_OR_ID116 = (Token)this.match(this.input, 40, FOLLOW_FLOAT_LITERAL_OR_ID_in_float_literal2605);
                        stream_FLOAT_LITERAL_OR_ID.add(FLOAT_LITERAL_OR_ID116);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(39, FLOAT_LITERAL_OR_ID116));
                        retval.tree = root_0;
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        FLOAT_LITERAL117 = (Token)this.match(this.input, 39, FOLLOW_FLOAT_LITERAL_in_float_literal2616);
                        FLOAT_LITERAL117_tree = (CommonTree)this.adaptor.create(FLOAT_LITERAL117);
                        this.adaptor.addChild(root_0, FLOAT_LITERAL117_tree);
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final double_literal_return double_literal() throws RecognitionException {
        double_literal_return retval = new double_literal_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token DOUBLE_LITERAL_OR_ID118 = null;
        Token DOUBLE_LITERAL119 = null;
        CommonTree DOUBLE_LITERAL_OR_ID118_tree = null;
        CommonTree DOUBLE_LITERAL119_tree = null;
        RewriteRuleTokenStream stream_DOUBLE_LITERAL_OR_ID = new RewriteRuleTokenStream(this.adaptor, "token DOUBLE_LITERAL_OR_ID");

        try {
            try {
                int alt21 = 0;
                int LA21_0 = this.input.LA(1);
                if (LA21_0 == 24) {
                    alt21 = 1;
                } else {
                    if (LA21_0 != 23) {
                        NoViableAltException nvae = new NoViableAltException("", 21, 0, this.input);
                        throw nvae;
                    }

                    alt21 = 2;
                }

                switch (alt21) {
                    case 1:
                        DOUBLE_LITERAL_OR_ID118 = (Token)this.match(this.input, 24, FOLLOW_DOUBLE_LITERAL_OR_ID_in_double_literal2626);
                        stream_DOUBLE_LITERAL_OR_ID.add(DOUBLE_LITERAL_OR_ID118);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(23, DOUBLE_LITERAL_OR_ID118));
                        retval.tree = root_0;
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        DOUBLE_LITERAL119 = (Token)this.match(this.input, 23, FOLLOW_DOUBLE_LITERAL_in_double_literal2637);
                        DOUBLE_LITERAL119_tree = (CommonTree)this.adaptor.create(DOUBLE_LITERAL119);
                        this.adaptor.addChild(root_0, DOUBLE_LITERAL119_tree);
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final literal_return literal() throws RecognitionException {
        literal_return retval = new literal_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token LONG_LITERAL120 = null;
        Token SHORT_LITERAL122 = null;
        Token BYTE_LITERAL123 = null;
        Token CHAR_LITERAL126 = null;
        Token STRING_LITERAL127 = null;
        Token BOOL_LITERAL128 = null;
        Token NULL_LITERAL129 = null;
        ParserRuleReturnScope integer_literal121 = null;
        ParserRuleReturnScope float_literal124 = null;
        ParserRuleReturnScope double_literal125 = null;
        ParserRuleReturnScope array_literal130 = null;
        ParserRuleReturnScope subannotation131 = null;
        ParserRuleReturnScope type_field_method_literal132 = null;
        ParserRuleReturnScope enum_literal133 = null;
        ParserRuleReturnScope method_handle_literal134 = null;
        ParserRuleReturnScope method_prototype135 = null;
        CommonTree LONG_LITERAL120_tree = null;
        CommonTree SHORT_LITERAL122_tree = null;
        CommonTree BYTE_LITERAL123_tree = null;
        CommonTree CHAR_LITERAL126_tree = null;
        CommonTree STRING_LITERAL127_tree = null;
        CommonTree BOOL_LITERAL128_tree = null;
        CommonTree NULL_LITERAL129_tree = null;

        try {
            try {
                int alt22 = 0;
                int LA22_2;
                int nvaeMark;
                NoViableAltException nvae;
                switch (this.input.LA(1)) {
                    case 4:
                    case 6:
                    case 8:
                    case 16:
                    case 41:
                    case 44:
                    case 45:
                    case 46:
                    case 48:
                    case 50:
                    case 53:
                    case 54:
                    case 55:
                    case 56:
                    case 57:
                    case 58:
                    case 62:
                    case 64:
                    case 65:
                    case 66:
                    case 67:
                    case 69:
                    case 70:
                    case 72:
                    case 76:
                    case 77:
                    case 79:
                    case 80:
                    case 81:
                    case 83:
                    case 84:
                    case 85:
                    case 92:
                    case 93:
                    case 94:
                    case 190:
                    case 200:
                    case 202:
                    case 204:
                    case 208:
                    case 214:
                    case 215:
                        alt22 = 13;
                        break;
                    case 5:
                    case 7:
                    case 9:
                    case 10:
                    case 13:
                    case 14:
                    case 17:
                    case 18:
                    case 19:
                    case 20:
                    case 21:
                    case 22:
                    case 25:
                    case 26:
                    case 27:
                    case 28:
                    case 29:
                    case 30:
                    case 31:
                    case 32:
                    case 33:
                    case 35:
                    case 36:
                    case 37:
                    case 38:
                    case 42:
                    case 43:
                    case 47:
                    case 49:
                    case 51:
                    case 52:
                    case 59:
                    case 60:
                    case 61:
                    case 63:
                    case 68:
                    case 71:
                    case 73:
                    case 74:
                    case 75:
                    case 78:
                    case 86:
                    case 87:
                    case 88:
                    case 89:
                    case 90:
                    case 91:
                    case 95:
                    case 96:
                    case 97:
                    case 98:
                    case 99:
                    case 100:
                    case 101:
                    case 102:
                    case 103:
                    case 104:
                    case 105:
                    case 106:
                    case 107:
                    case 108:
                    case 109:
                    case 110:
                    case 111:
                    case 112:
                    case 113:
                    case 114:
                    case 115:
                    case 116:
                    case 117:
                    case 118:
                    case 119:
                    case 120:
                    case 121:
                    case 122:
                    case 123:
                    case 124:
                    case 125:
                    case 126:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 131:
                    case 132:
                    case 133:
                    case 134:
                    case 135:
                    case 136:
                    case 137:
                    case 138:
                    case 139:
                    case 140:
                    case 141:
                    case 142:
                    case 143:
                    case 144:
                    case 145:
                    case 146:
                    case 147:
                    case 148:
                    case 149:
                    case 150:
                    case 151:
                    case 152:
                    case 153:
                    case 154:
                    case 155:
                    case 156:
                    case 157:
                    case 158:
                    case 159:
                    case 160:
                    case 161:
                    case 162:
                    case 163:
                    case 164:
                    case 165:
                    case 166:
                    case 167:
                    case 168:
                    case 169:
                    case 170:
                    case 171:
                    case 172:
                    case 173:
                    case 174:
                    case 175:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 180:
                    case 181:
                    case 182:
                    case 183:
                    case 184:
                    case 185:
                    case 186:
                    case 187:
                    case 188:
                    case 191:
                    case 198:
                    case 199:
                    case 203:
                    case 205:
                    case 206:
                    case 209:
                    case 210:
                    case 213:
                    default:
                         nvae = new NoViableAltException("", 22, 0, this.input);
                        throw nvae;
                    case 11:
                        LA22_2 = this.input.LA(2);
                        if (LA22_2 == -1 || LA22_2 >= 4 && LA22_2 <= 6 || LA22_2 == 11 || LA22_2 >= 17 && LA22_2 <= 19 || LA22_2 == 21 || LA22_2 >= 24 && LA22_2 <= 25 || LA22_2 == 27 || LA22_2 == 33 || LA22_2 == 37 || LA22_2 >= 40 && LA22_2 <= 42 || LA22_2 >= 44 && LA22_2 <= 46 || LA22_2 == 48 || LA22_2 == 50 || LA22_2 >= 53 && LA22_2 <= 58 || LA22_2 == 62 || LA22_2 >= 64 && LA22_2 <= 67 || LA22_2 >= 69 && LA22_2 <= 70 || LA22_2 == 72 || LA22_2 >= 76 && LA22_2 <= 77 || LA22_2 >= 79 && LA22_2 <= 85 || LA22_2 >= 92 && LA22_2 <= 94 || LA22_2 >= 191 && LA22_2 <= 195 || LA22_2 >= 200 && LA22_2 <= 202 || LA22_2 == 204 || LA22_2 >= 208 && LA22_2 <= 209 || LA22_2 >= 213 && LA22_2 <= 215) {
                            alt22 = 9;
                        } else {
                            if (LA22_2 != 20 && LA22_2 != 197) {
                                nvaeMark = this.input.mark();

                                try {
                                    this.input.consume();
                                    nvae = new NoViableAltException("", 22, 12, this.input);
                                    throw nvae;
                                } finally {
                                    this.input.rewind(nvaeMark);
                                }
                            }

                            alt22 = 13;
                        }
                        break;
                    case 12:
                        alt22 = 4;
                        break;
                    case 15:
                        alt22 = 7;
                        break;
                    case 23:
                        alt22 = 6;
                        break;
                    case 24:
                        LA22_2 = this.input.LA(2);
                        if (LA22_2 != -1 && (LA22_2 < 4 || LA22_2 > 6) && LA22_2 != 11 && (LA22_2 < 17 || LA22_2 > 19) && LA22_2 != 21 && (LA22_2 < 24 || LA22_2 > 25) && LA22_2 != 27 && LA22_2 != 33 && LA22_2 != 37 && (LA22_2 < 40 || LA22_2 > 42) && (LA22_2 < 44 || LA22_2 > 46) && LA22_2 != 48 && LA22_2 != 50 && (LA22_2 < 53 || LA22_2 > 58) && LA22_2 != 62 && (LA22_2 < 64 || LA22_2 > 67) && (LA22_2 < 69 || LA22_2 > 70) && LA22_2 != 72 && (LA22_2 < 76 || LA22_2 > 77) && (LA22_2 < 79 || LA22_2 > 85) && (LA22_2 < 92 || LA22_2 > 94) && (LA22_2 < 191 || LA22_2 > 195) && (LA22_2 < 200 || LA22_2 > 202) && LA22_2 != 204 && (LA22_2 < 208 || LA22_2 > 209) && (LA22_2 < 213 || LA22_2 > 215)) {
                            if (LA22_2 != 20 && LA22_2 != 197) {
                                nvaeMark = this.input.mark();

                                try {
                                    this.input.consume();
                                    nvae = new NoViableAltException("", 22, 8, this.input);
                                    throw nvae;
                                } finally {
                                    this.input.rewind(nvaeMark);
                                }
                            }

                            alt22 = 13;
                            break;
                        }

                        alt22 = 6;
                        break;
                    case 34:
                        alt22 = 14;
                        break;
                    case 39:
                        alt22 = 5;
                        break;
                    case 40:
                        LA22_2 = this.input.LA(2);
                        if (LA22_2 == -1 || LA22_2 >= 4 && LA22_2 <= 6 || LA22_2 == 11 || LA22_2 >= 17 && LA22_2 <= 19 || LA22_2 == 21 || LA22_2 >= 24 && LA22_2 <= 25 || LA22_2 == 27 || LA22_2 == 33 || LA22_2 == 37 || LA22_2 >= 40 && LA22_2 <= 42 || LA22_2 >= 44 && LA22_2 <= 46 || LA22_2 == 48 || LA22_2 == 50 || LA22_2 >= 53 && LA22_2 <= 58 || LA22_2 == 62 || LA22_2 >= 64 && LA22_2 <= 67 || LA22_2 >= 69 && LA22_2 <= 70 || LA22_2 == 72 || LA22_2 >= 76 && LA22_2 <= 77 || LA22_2 >= 79 && LA22_2 <= 85 || LA22_2 >= 92 && LA22_2 <= 94 || LA22_2 >= 191 && LA22_2 <= 195 || LA22_2 >= 200 && LA22_2 <= 202 || LA22_2 == 204 || LA22_2 >= 208 && LA22_2 <= 209 || LA22_2 >= 213 && LA22_2 <= 215) {
                            alt22 = 5;
                            break;
                        }

                        if (LA22_2 != 20 && LA22_2 != 197) {
                            nvaeMark = this.input.mark();

                            try {
                                this.input.consume();
                                nvae = new NoViableAltException("", 22, 6, this.input);
                                throw nvae;
                            } finally {
                                this.input.rewind(nvaeMark);
                            }
                        }

                        alt22 = 13;
                        break;
                    case 82:
                        LA22_2 = this.input.LA(2);
                        if (LA22_2 == 10) {
                            alt22 = 15;
                        } else {
                            if (LA22_2 != 20 && LA22_2 != 197) {
                                nvaeMark = this.input.mark();

                                try {
                                    this.input.consume();
                                    nvae = new NoViableAltException("", 22, 19, this.input);
                                    throw nvae;
                                } finally {
                                    this.input.rewind(nvaeMark);
                                }
                            }

                            alt22 = 13;
                        }
                        break;
                    case 189:
                        alt22 = 1;
                        break;
                    case 192:
                        LA22_2 = this.input.LA(2);
                        if (LA22_2 == 10) {
                            alt22 = 15;
                        } else {
                            if (LA22_2 != 20 && LA22_2 != 197) {
                                nvaeMark = this.input.mark();

                                try {
                                    this.input.consume();
                                    nvae = new NoViableAltException("", 22, 17, this.input);
                                    throw nvae;
                                } finally {
                                    this.input.rewind(nvaeMark);
                                }
                            }

                            alt22 = 13;
                        }
                        break;
                    case 193:
                        LA22_2 = this.input.LA(2);
                        if (LA22_2 == 10) {
                            alt22 = 15;
                        } else {
                            if (LA22_2 != 20 && LA22_2 != 197) {
                                nvaeMark = this.input.mark();

                                try {
                                    this.input.consume();
                                    nvae = new NoViableAltException("", 22, 18, this.input);
                                    throw nvae;
                                } finally {
                                    this.input.rewind(nvaeMark);
                                }
                            }

                            alt22 = 13;
                        }
                        break;
                    case 194:
                        LA22_2 = this.input.LA(2);
                        if (LA22_2 == -1 || LA22_2 >= 4 && LA22_2 <= 6 || LA22_2 == 11 || LA22_2 >= 17 && LA22_2 <= 19 || LA22_2 == 21 || LA22_2 >= 24 && LA22_2 <= 25 || LA22_2 == 27 || LA22_2 == 33 || LA22_2 == 37 || LA22_2 >= 40 && LA22_2 <= 42 || LA22_2 >= 44 && LA22_2 <= 46 || LA22_2 == 48 || LA22_2 == 50 || LA22_2 >= 53 && LA22_2 <= 58 || LA22_2 == 62 || LA22_2 >= 64 && LA22_2 <= 67 || LA22_2 >= 69 && LA22_2 <= 70 || LA22_2 == 72 || LA22_2 >= 76 && LA22_2 <= 77 || LA22_2 >= 79 && LA22_2 <= 85 || LA22_2 >= 92 && LA22_2 <= 94 || LA22_2 >= 191 && LA22_2 <= 195 || LA22_2 >= 200 && LA22_2 <= 202 || LA22_2 == 204 || LA22_2 >= 208 && LA22_2 <= 209 || LA22_2 >= 213 && LA22_2 <= 215) {
                            alt22 = 2;
                            break;
                        }

                        if (LA22_2 != 20 && LA22_2 != 197) {
                            nvaeMark = this.input.mark();

                            try {
                                this.input.consume();
                                nvae = new NoViableAltException("", 22, 3, this.input);
                                throw nvae;
                            } finally {
                                this.input.rewind(nvaeMark);
                            }
                        }

                        alt22 = 13;
                        break;
                    case 195:
                        LA22_2 = this.input.LA(2);
                        if (LA22_2 == -1 || LA22_2 >= 4 && LA22_2 <= 6 || LA22_2 == 11 || LA22_2 >= 17 && LA22_2 <= 19 || LA22_2 == 21 || LA22_2 >= 24 && LA22_2 <= 25 || LA22_2 == 27 || LA22_2 == 33 || LA22_2 == 37 || LA22_2 >= 40 && LA22_2 <= 42 || LA22_2 >= 44 && LA22_2 <= 46 || LA22_2 == 48 || LA22_2 == 50 || LA22_2 >= 53 && LA22_2 <= 58 || LA22_2 == 62 || LA22_2 >= 64 && LA22_2 <= 67 || LA22_2 >= 69 && LA22_2 <= 70 || LA22_2 == 72 || LA22_2 >= 76 && LA22_2 <= 77 || LA22_2 >= 79 && LA22_2 <= 85 || LA22_2 >= 92 && LA22_2 <= 94 || LA22_2 >= 191 && LA22_2 <= 195 || LA22_2 >= 200 && LA22_2 <= 202 || LA22_2 == 204 || LA22_2 >= 208 && LA22_2 <= 209 || LA22_2 >= 213 && LA22_2 <= 215) {
                            alt22 = 10;
                            break;
                        }

                        if (LA22_2 != 20 && LA22_2 != 197) {
                            nvaeMark = this.input.mark();

                            try {
                                this.input.consume();
                                nvae = new NoViableAltException("", 22, 13, this.input);
                                throw nvae;
                            } finally {
                                this.input.rewind(nvaeMark);
                            }
                        }

                        alt22 = 13;
                        break;
                    case 196:
                        alt22 = 11;
                        break;
                    case 197:
                        alt22 = 16;
                        break;
                    case 201:
                        LA22_2 = this.input.LA(2);
                        if (LA22_2 == -1 || LA22_2 >= 4 && LA22_2 <= 6 || LA22_2 == 11 || LA22_2 >= 17 && LA22_2 <= 19 || LA22_2 == 21 || LA22_2 >= 24 && LA22_2 <= 25 || LA22_2 == 27 || LA22_2 == 33 || LA22_2 == 37 || LA22_2 >= 40 && LA22_2 <= 42 || LA22_2 >= 44 && LA22_2 <= 46 || LA22_2 == 48 || LA22_2 == 50 || LA22_2 >= 53 && LA22_2 <= 58 || LA22_2 == 62 || LA22_2 >= 64 && LA22_2 <= 67 || LA22_2 >= 69 && LA22_2 <= 70 || LA22_2 == 72 || LA22_2 >= 76 && LA22_2 <= 77 || LA22_2 >= 79 && LA22_2 <= 85 || LA22_2 >= 92 && LA22_2 <= 94 || LA22_2 >= 191 && LA22_2 <= 195 || LA22_2 >= 200 && LA22_2 <= 202 || LA22_2 == 204 || LA22_2 >= 208 && LA22_2 <= 209 || LA22_2 >= 213 && LA22_2 <= 215) {
                            alt22 = 2;
                            break;
                        }

                        if (LA22_2 != 20 && LA22_2 != 197) {
                            nvaeMark = this.input.mark();

                            try {
                                this.input.consume();
                                nvae = new NoViableAltException("", 22, 2, this.input);
                                throw nvae;
                            } finally {
                                this.input.rewind(nvaeMark);
                            }
                        }

                        alt22 = 13;
                        break;
                    case 207:
                        alt22 = 3;
                        break;
                    case 211:
                        alt22 = 8;
                        break;
                    case 212:
                        alt22 = 12;
                }

                switch (alt22) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        LONG_LITERAL120 = (Token)this.match(this.input, 189, FOLLOW_LONG_LITERAL_in_literal2647);
                        LONG_LITERAL120_tree = (CommonTree)this.adaptor.create(LONG_LITERAL120);
                        this.adaptor.addChild(root_0, LONG_LITERAL120_tree);
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_integer_literal_in_literal2653);
                        integer_literal121 = this.integer_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, integer_literal121.getTree());
                        break;
                    case 3:
                        root_0 = (CommonTree)this.adaptor.nil();
                        SHORT_LITERAL122 = (Token)this.match(this.input, 207, FOLLOW_SHORT_LITERAL_in_literal2659);
                        SHORT_LITERAL122_tree = (CommonTree)this.adaptor.create(SHORT_LITERAL122);
                        this.adaptor.addChild(root_0, SHORT_LITERAL122_tree);
                        break;
                    case 4:
                        root_0 = (CommonTree)this.adaptor.nil();
                        BYTE_LITERAL123 = (Token)this.match(this.input, 12, FOLLOW_BYTE_LITERAL_in_literal2665);
                        BYTE_LITERAL123_tree = (CommonTree)this.adaptor.create(BYTE_LITERAL123);
                        this.adaptor.addChild(root_0, BYTE_LITERAL123_tree);
                        break;
                    case 5:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_float_literal_in_literal2671);
                        float_literal124 = this.float_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, float_literal124.getTree());
                        break;
                    case 6:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_double_literal_in_literal2677);
                        double_literal125 = this.double_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, double_literal125.getTree());
                        break;
                    case 7:
                        root_0 = (CommonTree)this.adaptor.nil();
                        CHAR_LITERAL126 = (Token)this.match(this.input, 15, FOLLOW_CHAR_LITERAL_in_literal2683);
                        CHAR_LITERAL126_tree = (CommonTree)this.adaptor.create(CHAR_LITERAL126);
                        this.adaptor.addChild(root_0, CHAR_LITERAL126_tree);
                        break;
                    case 8:
                        root_0 = (CommonTree)this.adaptor.nil();
                        STRING_LITERAL127 = (Token)this.match(this.input, 211, FOLLOW_STRING_LITERAL_in_literal2689);
                        STRING_LITERAL127_tree = (CommonTree)this.adaptor.create(STRING_LITERAL127);
                        this.adaptor.addChild(root_0, STRING_LITERAL127_tree);
                        break;
                    case 9:
                        root_0 = (CommonTree)this.adaptor.nil();
                        BOOL_LITERAL128 = (Token)this.match(this.input, 11, FOLLOW_BOOL_LITERAL_in_literal2695);
                        BOOL_LITERAL128_tree = (CommonTree)this.adaptor.create(BOOL_LITERAL128);
                        this.adaptor.addChild(root_0, BOOL_LITERAL128_tree);
                        break;
                    case 10:
                        root_0 = (CommonTree)this.adaptor.nil();
                        NULL_LITERAL129 = (Token)this.match(this.input, 195, FOLLOW_NULL_LITERAL_in_literal2701);
                        NULL_LITERAL129_tree = (CommonTree)this.adaptor.create(NULL_LITERAL129);
                        this.adaptor.addChild(root_0, NULL_LITERAL129_tree);
                        break;
                    case 11:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_array_literal_in_literal2707);
                        array_literal130 = this.array_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, array_literal130.getTree());
                        break;
                    case 12:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_subannotation_in_literal2713);
                        subannotation131 = this.subannotation();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, subannotation131.getTree());
                        break;
                    case 13:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_type_field_method_literal_in_literal2719);
                        type_field_method_literal132 = this.type_field_method_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, type_field_method_literal132.getTree());
                        break;
                    case 14:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_enum_literal_in_literal2725);
                        enum_literal133 = this.enum_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, enum_literal133.getTree());
                        break;
                    case 15:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_method_handle_literal_in_literal2731);
                        method_handle_literal134 = this.method_handle_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, method_handle_literal134.getTree());
                        break;
                    case 16:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_method_prototype_in_literal2737);
                        method_prototype135 = this.method_prototype();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, method_prototype135.getTree());
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var159) {
                RecognitionException re = var159;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final parsed_integer_literal_return parsed_integer_literal() throws RecognitionException {
        parsed_integer_literal_return retval = new parsed_integer_literal_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        ParserRuleReturnScope integer_literal136 = null;

        try {
            try {
                root_0 = (CommonTree)this.adaptor.nil();
                this.pushFollow(FOLLOW_integer_literal_in_parsed_integer_literal2750);
                integer_literal136 = this.integer_literal();
                --this.state._fsp;
                this.adaptor.addChild(root_0, integer_literal136.getTree());
                retval.value = LiteralTools.parseInt(integer_literal136 != null ? this.input.toString(integer_literal136.start, integer_literal136.stop) : null);
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var8) {
                RecognitionException re = var8;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final integral_literal_return integral_literal() throws RecognitionException {
        integral_literal_return retval = new integral_literal_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token LONG_LITERAL137 = null;
        Token SHORT_LITERAL139 = null;
        Token CHAR_LITERAL140 = null;
        Token BYTE_LITERAL141 = null;
        ParserRuleReturnScope integer_literal138 = null;
        CommonTree LONG_LITERAL137_tree = null;
        CommonTree SHORT_LITERAL139_tree = null;
        CommonTree CHAR_LITERAL140_tree = null;
        CommonTree BYTE_LITERAL141_tree = null;

        try {
            try {
                int alt23 = 0;
                switch (this.input.LA(1)) {
                    case 12:
                        alt23 = 5;
                        break;
                    case 15:
                        alt23 = 4;
                        break;
                    case 189:
                        alt23 = 1;
                        break;
                    case 194:
                    case 201:
                        alt23 = 2;
                        break;
                    case 207:
                        alt23 = 3;
                        break;
                    default:
                        NoViableAltException nvae = new NoViableAltException("", 23, 0, this.input);
                        throw nvae;
                }

                switch (alt23) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        LONG_LITERAL137 = (Token)this.match(this.input, 189, FOLLOW_LONG_LITERAL_in_integral_literal2762);
                        LONG_LITERAL137_tree = (CommonTree)this.adaptor.create(LONG_LITERAL137);
                        this.adaptor.addChild(root_0, LONG_LITERAL137_tree);
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_integer_literal_in_integral_literal2768);
                        integer_literal138 = this.integer_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, integer_literal138.getTree());
                        break;
                    case 3:
                        root_0 = (CommonTree)this.adaptor.nil();
                        SHORT_LITERAL139 = (Token)this.match(this.input, 207, FOLLOW_SHORT_LITERAL_in_integral_literal2774);
                        SHORT_LITERAL139_tree = (CommonTree)this.adaptor.create(SHORT_LITERAL139);
                        this.adaptor.addChild(root_0, SHORT_LITERAL139_tree);
                        break;
                    case 4:
                        root_0 = (CommonTree)this.adaptor.nil();
                        CHAR_LITERAL140 = (Token)this.match(this.input, 15, FOLLOW_CHAR_LITERAL_in_integral_literal2780);
                        CHAR_LITERAL140_tree = (CommonTree)this.adaptor.create(CHAR_LITERAL140);
                        this.adaptor.addChild(root_0, CHAR_LITERAL140_tree);
                        break;
                    case 5:
                        root_0 = (CommonTree)this.adaptor.nil();
                        BYTE_LITERAL141 = (Token)this.match(this.input, 12, FOLLOW_BYTE_LITERAL_in_integral_literal2786);
                        BYTE_LITERAL141_tree = (CommonTree)this.adaptor.create(BYTE_LITERAL141);
                        this.adaptor.addChild(root_0, BYTE_LITERAL141_tree);
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var17) {
                RecognitionException re = var17;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final fixed_32bit_literal_return fixed_32bit_literal() throws RecognitionException {
        fixed_32bit_literal_return retval = new fixed_32bit_literal_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token LONG_LITERAL142 = null;
        Token SHORT_LITERAL144 = null;
        Token BYTE_LITERAL145 = null;
        Token CHAR_LITERAL147 = null;
        Token BOOL_LITERAL148 = null;
        ParserRuleReturnScope integer_literal143 = null;
        ParserRuleReturnScope float_literal146 = null;
        CommonTree LONG_LITERAL142_tree = null;
        CommonTree SHORT_LITERAL144_tree = null;
        CommonTree BYTE_LITERAL145_tree = null;
        CommonTree CHAR_LITERAL147_tree = null;
        CommonTree BOOL_LITERAL148_tree = null;

        try {
            try {
                int alt24 = 0;
                switch (this.input.LA(1)) {
                    case 11:
                        alt24 = 7;
                        break;
                    case 12:
                        alt24 = 4;
                        break;
                    case 15:
                        alt24 = 6;
                        break;
                    case 39:
                    case 40:
                        alt24 = 5;
                        break;
                    case 189:
                        alt24 = 1;
                        break;
                    case 194:
                    case 201:
                        alt24 = 2;
                        break;
                    case 207:
                        alt24 = 3;
                        break;
                    default:
                        NoViableAltException nvae = new NoViableAltException("", 24, 0, this.input);
                        throw nvae;
                }

                switch (alt24) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        LONG_LITERAL142 = (Token)this.match(this.input, 189, FOLLOW_LONG_LITERAL_in_fixed_32bit_literal2796);
                        LONG_LITERAL142_tree = (CommonTree)this.adaptor.create(LONG_LITERAL142);
                        this.adaptor.addChild(root_0, LONG_LITERAL142_tree);
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_integer_literal_in_fixed_32bit_literal2802);
                        integer_literal143 = this.integer_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, integer_literal143.getTree());
                        break;
                    case 3:
                        root_0 = (CommonTree)this.adaptor.nil();
                        SHORT_LITERAL144 = (Token)this.match(this.input, 207, FOLLOW_SHORT_LITERAL_in_fixed_32bit_literal2808);
                        SHORT_LITERAL144_tree = (CommonTree)this.adaptor.create(SHORT_LITERAL144);
                        this.adaptor.addChild(root_0, SHORT_LITERAL144_tree);
                        break;
                    case 4:
                        root_0 = (CommonTree)this.adaptor.nil();
                        BYTE_LITERAL145 = (Token)this.match(this.input, 12, FOLLOW_BYTE_LITERAL_in_fixed_32bit_literal2814);
                        BYTE_LITERAL145_tree = (CommonTree)this.adaptor.create(BYTE_LITERAL145);
                        this.adaptor.addChild(root_0, BYTE_LITERAL145_tree);
                        break;
                    case 5:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_float_literal_in_fixed_32bit_literal2820);
                        float_literal146 = this.float_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, float_literal146.getTree());
                        break;
                    case 6:
                        root_0 = (CommonTree)this.adaptor.nil();
                        CHAR_LITERAL147 = (Token)this.match(this.input, 15, FOLLOW_CHAR_LITERAL_in_fixed_32bit_literal2826);
                        CHAR_LITERAL147_tree = (CommonTree)this.adaptor.create(CHAR_LITERAL147);
                        this.adaptor.addChild(root_0, CHAR_LITERAL147_tree);
                        break;
                    case 7:
                        root_0 = (CommonTree)this.adaptor.nil();
                        BOOL_LITERAL148 = (Token)this.match(this.input, 11, FOLLOW_BOOL_LITERAL_in_fixed_32bit_literal2832);
                        BOOL_LITERAL148_tree = (CommonTree)this.adaptor.create(BOOL_LITERAL148);
                        this.adaptor.addChild(root_0, BOOL_LITERAL148_tree);
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var20) {
                RecognitionException re = var20;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final fixed_literal_return fixed_literal() throws RecognitionException {
        fixed_literal_return retval = new fixed_literal_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token LONG_LITERAL150 = null;
        Token SHORT_LITERAL151 = null;
        Token BYTE_LITERAL152 = null;
        Token CHAR_LITERAL155 = null;
        Token BOOL_LITERAL156 = null;
        ParserRuleReturnScope integer_literal149 = null;
        ParserRuleReturnScope float_literal153 = null;
        ParserRuleReturnScope double_literal154 = null;
        CommonTree LONG_LITERAL150_tree = null;
        CommonTree SHORT_LITERAL151_tree = null;
        CommonTree BYTE_LITERAL152_tree = null;
        CommonTree CHAR_LITERAL155_tree = null;
        CommonTree BOOL_LITERAL156_tree = null;

        try {
            try {
                int alt25 = 0;
                switch (this.input.LA(1)) {
                    case 11:
                        alt25 = 8;
                        break;
                    case 12:
                        alt25 = 4;
                        break;
                    case 15:
                        alt25 = 7;
                        break;
                    case 23:
                    case 24:
                        alt25 = 6;
                        break;
                    case 39:
                    case 40:
                        alt25 = 5;
                        break;
                    case 189:
                        alt25 = 2;
                        break;
                    case 194:
                    case 201:
                        alt25 = 1;
                        break;
                    case 207:
                        alt25 = 3;
                        break;
                    default:
                        NoViableAltException nvae = new NoViableAltException("", 25, 0, this.input);
                        throw nvae;
                }

                switch (alt25) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_integer_literal_in_fixed_literal2842);
                        integer_literal149 = this.integer_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, integer_literal149.getTree());
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        LONG_LITERAL150 = (Token)this.match(this.input, 189, FOLLOW_LONG_LITERAL_in_fixed_literal2848);
                        LONG_LITERAL150_tree = (CommonTree)this.adaptor.create(LONG_LITERAL150);
                        this.adaptor.addChild(root_0, LONG_LITERAL150_tree);
                        break;
                    case 3:
                        root_0 = (CommonTree)this.adaptor.nil();
                        SHORT_LITERAL151 = (Token)this.match(this.input, 207, FOLLOW_SHORT_LITERAL_in_fixed_literal2854);
                        SHORT_LITERAL151_tree = (CommonTree)this.adaptor.create(SHORT_LITERAL151);
                        this.adaptor.addChild(root_0, SHORT_LITERAL151_tree);
                        break;
                    case 4:
                        root_0 = (CommonTree)this.adaptor.nil();
                        BYTE_LITERAL152 = (Token)this.match(this.input, 12, FOLLOW_BYTE_LITERAL_in_fixed_literal2860);
                        BYTE_LITERAL152_tree = (CommonTree)this.adaptor.create(BYTE_LITERAL152);
                        this.adaptor.addChild(root_0, BYTE_LITERAL152_tree);
                        break;
                    case 5:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_float_literal_in_fixed_literal2866);
                        float_literal153 = this.float_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, float_literal153.getTree());
                        break;
                    case 6:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_double_literal_in_fixed_literal2872);
                        double_literal154 = this.double_literal();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, double_literal154.getTree());
                        break;
                    case 7:
                        root_0 = (CommonTree)this.adaptor.nil();
                        CHAR_LITERAL155 = (Token)this.match(this.input, 15, FOLLOW_CHAR_LITERAL_in_fixed_literal2878);
                        CHAR_LITERAL155_tree = (CommonTree)this.adaptor.create(CHAR_LITERAL155);
                        this.adaptor.addChild(root_0, CHAR_LITERAL155_tree);
                        break;
                    case 8:
                        root_0 = (CommonTree)this.adaptor.nil();
                        BOOL_LITERAL156 = (Token)this.match(this.input, 11, FOLLOW_BOOL_LITERAL_in_fixed_literal2884);
                        BOOL_LITERAL156_tree = (CommonTree)this.adaptor.create(BOOL_LITERAL156);
                        this.adaptor.addChild(root_0, BOOL_LITERAL156_tree);
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var21) {
                RecognitionException re = var21;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final array_literal_return array_literal() throws RecognitionException {
        array_literal_return retval = new array_literal_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token OPEN_BRACE157 = null;
        Token COMMA159 = null;
        Token CLOSE_BRACE161 = null;
        ParserRuleReturnScope literal158 = null;
        ParserRuleReturnScope literal160 = null;
        CommonTree OPEN_BRACE157_tree = null;
        CommonTree COMMA159_tree = null;
        CommonTree CLOSE_BRACE161_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_OPEN_BRACE = new RewriteRuleTokenStream(this.adaptor, "token OPEN_BRACE");
        RewriteRuleTokenStream stream_CLOSE_BRACE = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_BRACE");
        RewriteRuleSubtreeStream stream_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule literal");

        try {
            try {
                OPEN_BRACE157 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_array_literal2894);
                stream_OPEN_BRACE.add(OPEN_BRACE157);
                int alt27 = 0;
                int LA27_0 = this.input.LA(1);
                if (LA27_0 == 4 || LA27_0 == 6 || LA27_0 == 8 || LA27_0 >= 11 && LA27_0 <= 12 || LA27_0 >= 15 && LA27_0 <= 16 || LA27_0 >= 23 && LA27_0 <= 24 || LA27_0 == 34 || LA27_0 >= 39 && LA27_0 <= 41 || LA27_0 >= 44 && LA27_0 <= 46 || LA27_0 == 48 || LA27_0 == 50 || LA27_0 >= 53 && LA27_0 <= 58 || LA27_0 == 62 || LA27_0 >= 64 && LA27_0 <= 67 || LA27_0 >= 69 && LA27_0 <= 70 || LA27_0 == 72 || LA27_0 >= 76 && LA27_0 <= 77 || LA27_0 >= 79 && LA27_0 <= 85 || LA27_0 >= 92 && LA27_0 <= 94 || LA27_0 >= 189 && LA27_0 <= 190 || LA27_0 >= 192 && LA27_0 <= 197 || LA27_0 >= 200 && LA27_0 <= 202 || LA27_0 == 204 || LA27_0 >= 207 && LA27_0 <= 208 || LA27_0 >= 211 && LA27_0 <= 212 || LA27_0 >= 214 && LA27_0 <= 215) {
                    alt27 = 1;
                } else {
                    if (LA27_0 != 18) {
                        NoViableAltException nvae = new NoViableAltException("", 27, 0, this.input);
                        throw nvae;
                    }

                    alt27 = 2;
                }

                switch (alt27) {
                    case 1:
                        this.pushFollow(FOLLOW_literal_in_array_literal2897);
                        literal158 = this.literal();
                        --this.state._fsp;
                        stream_literal.add(literal158.getTree());

                        label264:
                        while(true) {
                            int alt26 = 2;
                            int LA26_0 = this.input.LA(1);
                            if (LA26_0 == 21) {
                                alt26 = 1;
                            }

                            switch (alt26) {
                                case 1:
                                    COMMA159 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_array_literal2900);
                                    stream_COMMA.add(COMMA159);
                                    this.pushFollow(FOLLOW_literal_in_array_literal2902);
                                    literal160 = this.literal();
                                    --this.state._fsp;
                                    stream_literal.add(literal160.getTree());
                                    break;
                                default:
                                    break label264;
                            }
                        }
                    case 2:
                }

                CLOSE_BRACE161 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_array_literal2910);
                stream_CLOSE_BRACE.add(CLOSE_BRACE161);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(110, retval.start, "I_ENCODED_ARRAY"), root_1);

                while(stream_literal.hasNext()) {
                    this.adaptor.addChild(root_1, stream_literal.nextTree());
                }

                stream_literal.reset();
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var22) {
                RecognitionException re = var22;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final annotation_element_return annotation_element() throws RecognitionException {
        annotation_element_return retval = new annotation_element_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token EQUAL163 = null;
        ParserRuleReturnScope simple_name162 = null;
        ParserRuleReturnScope literal164 = null;
        CommonTree EQUAL163_tree = null;
        RewriteRuleTokenStream stream_EQUAL = new RewriteRuleTokenStream(this.adaptor, "token EQUAL");
        RewriteRuleSubtreeStream stream_simple_name = new RewriteRuleSubtreeStream(this.adaptor, "rule simple_name");
        RewriteRuleSubtreeStream stream_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule literal");

        try {
            try {
                this.pushFollow(FOLLOW_simple_name_in_annotation_element2934);
                simple_name162 = this.simple_name();
                --this.state._fsp;
                stream_simple_name.add(simple_name162.getTree());
                EQUAL163 = (Token)this.match(this.input, 36, FOLLOW_EQUAL_in_annotation_element2936);
                stream_EQUAL.add(EQUAL163);
                this.pushFollow(FOLLOW_literal_in_annotation_element2938);
                literal164 = this.literal();
                --this.state._fsp;
                stream_literal.add(literal164.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(101, retval.start, "I_ANNOTATION_ELEMENT"), root_1);
                this.adaptor.addChild(root_1, stream_simple_name.nextTree());
                this.adaptor.addChild(root_1, stream_literal.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var15) {
                RecognitionException re = var15;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final annotation_return annotation() throws RecognitionException {
        annotation_return retval = new annotation_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token ANNOTATION_DIRECTIVE165 = null;
        Token ANNOTATION_VISIBILITY166 = null;
        Token CLASS_DESCRIPTOR167 = null;
        Token END_ANNOTATION_DIRECTIVE169 = null;
        ParserRuleReturnScope annotation_element168 = null;
        CommonTree ANNOTATION_DIRECTIVE165_tree = null;
        CommonTree ANNOTATION_VISIBILITY166_tree = null;
        CommonTree CLASS_DESCRIPTOR167_tree = null;
        CommonTree END_ANNOTATION_DIRECTIVE169_tree = null;
        RewriteRuleTokenStream stream_ANNOTATION_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token ANNOTATION_DIRECTIVE");
        RewriteRuleTokenStream stream_ANNOTATION_VISIBILITY = new RewriteRuleTokenStream(this.adaptor, "token ANNOTATION_VISIBILITY");
        RewriteRuleTokenStream stream_CLASS_DESCRIPTOR = new RewriteRuleTokenStream(this.adaptor, "token CLASS_DESCRIPTOR");
        RewriteRuleTokenStream stream_END_ANNOTATION_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token END_ANNOTATION_DIRECTIVE");
        RewriteRuleSubtreeStream stream_annotation_element = new RewriteRuleSubtreeStream(this.adaptor, "rule annotation_element");

        try {
            ANNOTATION_DIRECTIVE165 = (Token)this.match(this.input, 5, FOLLOW_ANNOTATION_DIRECTIVE_in_annotation2963);
            stream_ANNOTATION_DIRECTIVE.add(ANNOTATION_DIRECTIVE165);
            ANNOTATION_VISIBILITY166 = (Token)this.match(this.input, 6, FOLLOW_ANNOTATION_VISIBILITY_in_annotation2965);
            stream_ANNOTATION_VISIBILITY.add(ANNOTATION_VISIBILITY166);
            CLASS_DESCRIPTOR167 = (Token)this.match(this.input, 16, FOLLOW_CLASS_DESCRIPTOR_in_annotation2967);
            stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR167);

            while(true) {
                int alt28 = 2;
                int LA28_0 = this.input.LA(1);
                if (LA28_0 == 4 || LA28_0 == 6 || LA28_0 == 11 || LA28_0 == 24 || LA28_0 >= 40 && LA28_0 <= 41 || LA28_0 >= 44 && LA28_0 <= 46 || LA28_0 == 48 || LA28_0 == 50 || LA28_0 >= 53 && LA28_0 <= 58 || LA28_0 == 62 || LA28_0 >= 64 && LA28_0 <= 67 || LA28_0 >= 69 && LA28_0 <= 70 || LA28_0 == 72 || LA28_0 >= 76 && LA28_0 <= 77 || LA28_0 >= 79 && LA28_0 <= 85 || LA28_0 >= 92 && LA28_0 <= 94 || LA28_0 >= 192 && LA28_0 <= 195 || LA28_0 >= 200 && LA28_0 <= 202 || LA28_0 == 204 || LA28_0 == 208 || LA28_0 >= 214 && LA28_0 <= 215) {
                    alt28 = 1;
                }

                switch (alt28) {
                    case 1:
                        this.pushFollow(FOLLOW_annotation_element_in_annotation2973);
                        annotation_element168 = this.annotation_element();
                        --this.state._fsp;
                        stream_annotation_element.add(annotation_element168.getTree());
                        break;
                    default:
                        END_ANNOTATION_DIRECTIVE169 = (Token)this.match(this.input, 25, FOLLOW_END_ANNOTATION_DIRECTIVE_in_annotation2976);
                        stream_END_ANNOTATION_DIRECTIVE.add(END_ANNOTATION_DIRECTIVE169);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        CommonTree root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(99, retval.start, "I_ANNOTATION"), root_1);
                        this.adaptor.addChild(root_1, stream_ANNOTATION_VISIBILITY.nextNode());
                        CommonTree root_2 = (CommonTree)this.adaptor.nil();
                        root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(183, retval.start, "I_SUBANNOTATION"), root_2);
                        this.adaptor.addChild(root_2, stream_CLASS_DESCRIPTOR.nextNode());

                        while(stream_annotation_element.hasNext()) {
                            this.adaptor.addChild(root_2, stream_annotation_element.nextTree());
                        }

                        stream_annotation_element.reset();
                        this.adaptor.addChild(root_1, root_2);
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                        return retval;
                }
            }
        } catch (RecognitionException var23) {
            RecognitionException re = var23;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            return retval;
        } finally {
            ;
        }
    }

    public final subannotation_return subannotation() throws RecognitionException {
        subannotation_return retval = new subannotation_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token SUBANNOTATION_DIRECTIVE170 = null;
        Token CLASS_DESCRIPTOR171 = null;
        Token END_SUBANNOTATION_DIRECTIVE173 = null;
        ParserRuleReturnScope annotation_element172 = null;
        CommonTree SUBANNOTATION_DIRECTIVE170_tree = null;
        CommonTree CLASS_DESCRIPTOR171_tree = null;
        CommonTree END_SUBANNOTATION_DIRECTIVE173_tree = null;
        RewriteRuleTokenStream stream_SUBANNOTATION_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token SUBANNOTATION_DIRECTIVE");
        RewriteRuleTokenStream stream_CLASS_DESCRIPTOR = new RewriteRuleTokenStream(this.adaptor, "token CLASS_DESCRIPTOR");
        RewriteRuleTokenStream stream_END_SUBANNOTATION_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token END_SUBANNOTATION_DIRECTIVE");
        RewriteRuleSubtreeStream stream_annotation_element = new RewriteRuleSubtreeStream(this.adaptor, "rule annotation_element");

        try {
            SUBANNOTATION_DIRECTIVE170 = (Token)this.match(this.input, 212, FOLLOW_SUBANNOTATION_DIRECTIVE_in_subannotation3009);
            stream_SUBANNOTATION_DIRECTIVE.add(SUBANNOTATION_DIRECTIVE170);
            CLASS_DESCRIPTOR171 = (Token)this.match(this.input, 16, FOLLOW_CLASS_DESCRIPTOR_in_subannotation3011);
            stream_CLASS_DESCRIPTOR.add(CLASS_DESCRIPTOR171);

            while(true) {
                int alt29 = 2;
                int LA29_0 = this.input.LA(1);
                if (LA29_0 == 4 || LA29_0 == 6 || LA29_0 == 11 || LA29_0 == 24 || LA29_0 >= 40 && LA29_0 <= 41 || LA29_0 >= 44 && LA29_0 <= 46 || LA29_0 == 48 || LA29_0 == 50 || LA29_0 >= 53 && LA29_0 <= 58 || LA29_0 == 62 || LA29_0 >= 64 && LA29_0 <= 67 || LA29_0 >= 69 && LA29_0 <= 70 || LA29_0 == 72 || LA29_0 >= 76 && LA29_0 <= 77 || LA29_0 >= 79 && LA29_0 <= 85 || LA29_0 >= 92 && LA29_0 <= 94 || LA29_0 >= 192 && LA29_0 <= 195 || LA29_0 >= 200 && LA29_0 <= 202 || LA29_0 == 204 || LA29_0 == 208 || LA29_0 >= 214 && LA29_0 <= 215) {
                    alt29 = 1;
                }

                switch (alt29) {
                    case 1:
                        this.pushFollow(FOLLOW_annotation_element_in_subannotation3013);
                        annotation_element172 = this.annotation_element();
                        --this.state._fsp;
                        stream_annotation_element.add(annotation_element172.getTree());
                        break;
                    default:
                        END_SUBANNOTATION_DIRECTIVE173 = (Token)this.match(this.input, 33, FOLLOW_END_SUBANNOTATION_DIRECTIVE_in_subannotation3016);
                        stream_END_SUBANNOTATION_DIRECTIVE.add(END_SUBANNOTATION_DIRECTIVE173);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        CommonTree root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(183, retval.start, "I_SUBANNOTATION"), root_1);
                        this.adaptor.addChild(root_1, stream_CLASS_DESCRIPTOR.nextNode());

                        while(stream_annotation_element.hasNext()) {
                            this.adaptor.addChild(root_1, stream_annotation_element.nextTree());
                        }

                        stream_annotation_element.reset();
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                        return retval;
                }
            }
        } catch (RecognitionException var19) {
            RecognitionException re = var19;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            return retval;
        } finally {
            ;
        }
    }

    public final enum_literal_return enum_literal() throws RecognitionException {
        enum_literal_return retval = new enum_literal_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token ENUM_DIRECTIVE174 = null;
        ParserRuleReturnScope field_reference175 = null;
        CommonTree ENUM_DIRECTIVE174_tree = null;
        RewriteRuleTokenStream stream_ENUM_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token ENUM_DIRECTIVE");
        RewriteRuleSubtreeStream stream_field_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule field_reference");

        try {
            try {
                ENUM_DIRECTIVE174 = (Token)this.match(this.input, 34, FOLLOW_ENUM_DIRECTIVE_in_enum_literal3043);
                stream_ENUM_DIRECTIVE.add(ENUM_DIRECTIVE174);
                this.pushFollow(FOLLOW_field_reference_in_enum_literal3045);
                field_reference175 = this.field_reference();
                --this.state._fsp;
                stream_field_reference.add(field_reference175.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(111, "I_ENCODED_ENUM"), root_1);
                this.adaptor.addChild(root_1, stream_field_reference.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var13) {
                RecognitionException re = var13;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final type_field_method_literal_return type_field_method_literal() throws RecognitionException {
        type_field_method_literal_return retval = new type_field_method_literal_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token ARROW178 = null;
        Token COLON180 = null;
        Token PRIMITIVE_TYPE184 = null;
        Token VOID_TYPE185 = null;
        ParserRuleReturnScope reference_type_descriptor176 = null;
        ParserRuleReturnScope reference_type_descriptor177 = null;
        ParserRuleReturnScope member_name179 = null;
        ParserRuleReturnScope nonvoid_type_descriptor181 = null;
        ParserRuleReturnScope member_name182 = null;
        ParserRuleReturnScope method_prototype183 = null;
        CommonTree ARROW178_tree = null;
        CommonTree COLON180_tree = null;
        CommonTree PRIMITIVE_TYPE184_tree = null;
        CommonTree VOID_TYPE185_tree = null;
        RewriteRuleTokenStream stream_ARROW = new RewriteRuleTokenStream(this.adaptor, "token ARROW");
        RewriteRuleTokenStream stream_COLON = new RewriteRuleTokenStream(this.adaptor, "token COLON");
        RewriteRuleSubtreeStream stream_method_prototype = new RewriteRuleSubtreeStream(this.adaptor, "rule method_prototype");
        RewriteRuleSubtreeStream stream_nonvoid_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule nonvoid_type_descriptor");
        RewriteRuleSubtreeStream stream_member_name = new RewriteRuleSubtreeStream(this.adaptor, "rule member_name");
        RewriteRuleSubtreeStream stream_reference_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule reference_type_descriptor");

        try {
            try {
                int alt32 = 0;
                int nvaeMark;
                int LA32_5;
                NoViableAltException nvae;
                switch (this.input.LA(1)) {
                    case 4:
                    case 6:
                    case 11:
                    case 24:
                    case 40:
                    case 41:
                    case 44:
                    case 45:
                    case 46:
                    case 48:
                    case 50:
                    case 53:
                    case 54:
                    case 55:
                    case 56:
                    case 57:
                    case 58:
                    case 62:
                    case 64:
                    case 65:
                    case 66:
                    case 67:
                    case 69:
                    case 70:
                    case 72:
                    case 76:
                    case 77:
                    case 79:
                    case 80:
                    case 81:
                    case 82:
                    case 83:
                    case 84:
                    case 85:
                    case 92:
                    case 93:
                    case 94:
                    case 190:
                    case 192:
                    case 193:
                    case 194:
                    case 195:
                    case 200:
                    case 201:
                    case 204:
                    case 208:
                    case 214:
                        alt32 = 2;
                        break;
                    case 5:
                    case 7:
                    case 9:
                    case 10:
                    case 12:
                    case 13:
                    case 14:
                    case 15:
                    case 17:
                    case 18:
                    case 19:
                    case 20:
                    case 21:
                    case 22:
                    case 23:
                    case 25:
                    case 26:
                    case 27:
                    case 28:
                    case 29:
                    case 30:
                    case 31:
                    case 32:
                    case 33:
                    case 34:
                    case 35:
                    case 36:
                    case 37:
                    case 38:
                    case 39:
                    case 42:
                    case 43:
                    case 47:
                    case 49:
                    case 51:
                    case 52:
                    case 59:
                    case 60:
                    case 61:
                    case 63:
                    case 68:
                    case 71:
                    case 73:
                    case 74:
                    case 75:
                    case 78:
                    case 86:
                    case 87:
                    case 88:
                    case 89:
                    case 90:
                    case 91:
                    case 95:
                    case 96:
                    case 97:
                    case 98:
                    case 99:
                    case 100:
                    case 101:
                    case 102:
                    case 103:
                    case 104:
                    case 105:
                    case 106:
                    case 107:
                    case 108:
                    case 109:
                    case 110:
                    case 111:
                    case 112:
                    case 113:
                    case 114:
                    case 115:
                    case 116:
                    case 117:
                    case 118:
                    case 119:
                    case 120:
                    case 121:
                    case 122:
                    case 123:
                    case 124:
                    case 125:
                    case 126:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 131:
                    case 132:
                    case 133:
                    case 134:
                    case 135:
                    case 136:
                    case 137:
                    case 138:
                    case 139:
                    case 140:
                    case 141:
                    case 142:
                    case 143:
                    case 144:
                    case 145:
                    case 146:
                    case 147:
                    case 148:
                    case 149:
                    case 150:
                    case 151:
                    case 152:
                    case 153:
                    case 154:
                    case 155:
                    case 156:
                    case 157:
                    case 158:
                    case 159:
                    case 160:
                    case 161:
                    case 162:
                    case 163:
                    case 164:
                    case 165:
                    case 166:
                    case 167:
                    case 168:
                    case 169:
                    case 170:
                    case 171:
                    case 172:
                    case 173:
                    case 174:
                    case 175:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 180:
                    case 181:
                    case 182:
                    case 183:
                    case 184:
                    case 185:
                    case 186:
                    case 187:
                    case 188:
                    case 189:
                    case 191:
                    case 196:
                    case 197:
                    case 198:
                    case 199:
                    case 203:
                    case 205:
                    case 206:
                    case 207:
                    case 209:
                    case 210:
                    case 211:
                    case 212:
                    case 213:
                    default:
                        nvae = new NoViableAltException("", 32, 0, this.input);
                        throw nvae;
                    case 8:
                        LA32_5 = this.input.LA(2);
                        if (LA32_5 != 16 && LA32_5 != 202) {
                            nvaeMark = this.input.mark();

                            try {
                                this.input.consume();
                                nvae = new NoViableAltException("", 32, 2, this.input);
                                throw nvae;
                            } finally {
                                this.input.rewind(nvaeMark);
                            }
                        }

                        nvaeMark = this.input.LA(3);
                        if (nvaeMark == -1 || nvaeMark >= 4 && nvaeMark <= 6 || nvaeMark == 11 || nvaeMark >= 17 && nvaeMark <= 19 || nvaeMark == 21 || nvaeMark >= 24 && nvaeMark <= 25 || nvaeMark == 27 || nvaeMark == 33 || nvaeMark == 37 || nvaeMark >= 40 && nvaeMark <= 42 || nvaeMark >= 44 && nvaeMark <= 46 || nvaeMark == 48 || nvaeMark == 50 || nvaeMark >= 53 && nvaeMark <= 58 || nvaeMark == 62 || nvaeMark >= 64 && nvaeMark <= 67 || nvaeMark >= 69 && nvaeMark <= 70 || nvaeMark == 72 || nvaeMark >= 76 && nvaeMark <= 77 || nvaeMark >= 79 && nvaeMark <= 85 || nvaeMark >= 92 && nvaeMark <= 94 || nvaeMark >= 191 && nvaeMark <= 195 || nvaeMark >= 200 && nvaeMark <= 202 || nvaeMark == 204 || nvaeMark >= 208 && nvaeMark <= 209 || nvaeMark >= 213 && nvaeMark <= 215) {
                            alt32 = 1;
                            break;
                        }

                        if (nvaeMark != 9) {
                            nvaeMark = this.input.mark();

                            try {
                                for(int nvaeConsume = 0; nvaeConsume < 2; ++nvaeConsume) {
                                    this.input.consume();
                                }

                                nvae = new NoViableAltException("", 32, 7, this.input);
                                throw nvae;
                            } finally {
                                this.input.rewind(nvaeMark);
                            }
                        }

                        alt32 = 2;
                        break;
                    case 16:
                        LA32_5 = this.input.LA(2);
                        if (LA32_5 == -1 || LA32_5 >= 4 && LA32_5 <= 6 || LA32_5 == 11 || LA32_5 >= 17 && LA32_5 <= 19 || LA32_5 == 21 || LA32_5 >= 24 && LA32_5 <= 25 || LA32_5 == 27 || LA32_5 == 33 || LA32_5 == 37 || LA32_5 >= 40 && LA32_5 <= 42 || LA32_5 >= 44 && LA32_5 <= 46 || LA32_5 == 48 || LA32_5 == 50 || LA32_5 >= 53 && LA32_5 <= 58 || LA32_5 == 62 || LA32_5 >= 64 && LA32_5 <= 67 || LA32_5 >= 69 && LA32_5 <= 70 || LA32_5 == 72 || LA32_5 >= 76 && LA32_5 <= 77 || LA32_5 >= 79 && LA32_5 <= 85 || LA32_5 >= 92 && LA32_5 <= 94 || LA32_5 >= 191 && LA32_5 <= 195 || LA32_5 >= 200 && LA32_5 <= 202 || LA32_5 == 204 || LA32_5 >= 208 && LA32_5 <= 209 || LA32_5 >= 213 && LA32_5 <= 215) {
                            alt32 = 1;
                            break;
                        }

                        if (LA32_5 != 9) {
                            nvaeMark = this.input.mark();

                            try {
                                this.input.consume();
                                nvae = new NoViableAltException("", 32, 1, this.input);
                                throw nvae;
                            } finally {
                                this.input.rewind(nvaeMark);
                            }
                        }

                        alt32 = 2;
                        break;
                    case 202:
                        LA32_5 = this.input.LA(2);
                        if (LA32_5 != 20 && LA32_5 != 197) {
                            if (LA32_5 != -1 && (LA32_5 < 4 || LA32_5 > 6) && LA32_5 != 11 && (LA32_5 < 17 || LA32_5 > 19) && LA32_5 != 21 && (LA32_5 < 24 || LA32_5 > 25) && LA32_5 != 27 && LA32_5 != 33 && LA32_5 != 37 && (LA32_5 < 40 || LA32_5 > 42) && (LA32_5 < 44 || LA32_5 > 46) && LA32_5 != 48 && LA32_5 != 50 && (LA32_5 < 53 || LA32_5 > 58) && LA32_5 != 62 && (LA32_5 < 64 || LA32_5 > 67) && (LA32_5 < 69 || LA32_5 > 70) && LA32_5 != 72 && (LA32_5 < 76 || LA32_5 > 77) && (LA32_5 < 79 || LA32_5 > 85) && (LA32_5 < 92 || LA32_5 > 94) && (LA32_5 < 191 || LA32_5 > 195) && (LA32_5 < 200 || LA32_5 > 202) && LA32_5 != 204 && (LA32_5 < 208 || LA32_5 > 209) && (LA32_5 < 213 || LA32_5 > 215)) {
                                nvaeMark = this.input.mark();

                                try {
                                    this.input.consume();
                                    nvae = new NoViableAltException("", 32, 4, this.input);
                                    throw nvae;
                                } finally {
                                    this.input.rewind(nvaeMark);
                                }
                            }

                            alt32 = 3;
                            break;
                        }

                        alt32 = 2;
                        break;
                    case 215:
                        LA32_5 = this.input.LA(2);
                        if (LA32_5 != 20 && LA32_5 != 197) {
                            if (LA32_5 != -1 && (LA32_5 < 4 || LA32_5 > 6) && LA32_5 != 11 && (LA32_5 < 17 || LA32_5 > 19) && LA32_5 != 21 && (LA32_5 < 24 || LA32_5 > 25) && LA32_5 != 27 && LA32_5 != 33 && LA32_5 != 37 && (LA32_5 < 40 || LA32_5 > 42) && (LA32_5 < 44 || LA32_5 > 46) && LA32_5 != 48 && LA32_5 != 50 && (LA32_5 < 53 || LA32_5 > 58) && LA32_5 != 62 && (LA32_5 < 64 || LA32_5 > 67) && (LA32_5 < 69 || LA32_5 > 70) && LA32_5 != 72 && (LA32_5 < 76 || LA32_5 > 77) && (LA32_5 < 79 || LA32_5 > 85) && (LA32_5 < 92 || LA32_5 > 94) && (LA32_5 < 191 || LA32_5 > 195) && (LA32_5 < 200 || LA32_5 > 202) && LA32_5 != 204 && (LA32_5 < 208 || LA32_5 > 209) && (LA32_5 < 213 || LA32_5 > 215)) {
                                nvaeMark = this.input.mark();

                                try {
                                    this.input.consume();
                                    nvae = new NoViableAltException("", 32, 5, this.input);
                                    throw nvae;
                                } finally {
                                    this.input.rewind(nvaeMark);
                                }
                            }

                            alt32 = 4;
                        } else {
                            alt32 = 2;
                        }
                }

                label3938:
                switch (alt32) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_reference_type_descriptor_in_type_field_method_literal3065);
                        reference_type_descriptor176 = this.reference_type_descriptor();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, reference_type_descriptor176.getTree());
                        break;
                    case 2:
                        int alt30 = 2;
                        nvaeMark = this.input.LA(1);
                        if (nvaeMark == 8 || nvaeMark == 16) {
                            alt30 = 1;
                        }

                        switch (alt30) {
                            case 1:
                                this.pushFollow(FOLLOW_reference_type_descriptor_in_type_field_method_literal3074);
                                reference_type_descriptor177 = this.reference_type_descriptor();
                                --this.state._fsp;
                                stream_reference_type_descriptor.add(reference_type_descriptor177.getTree());
                                ARROW178 = (Token)this.match(this.input, 9, FOLLOW_ARROW_in_type_field_method_literal3076);
                                stream_ARROW.add(ARROW178);
                            default:
                                int alt31 = 0;
                                nvaeMark = this.dfa31.predict(this.input);
                                CommonTree root_1;
                                switch (nvaeMark) {
                                    case 1:
                                        this.pushFollow(FOLLOW_member_name_in_type_field_method_literal3088);
                                        member_name179 = this.member_name();
                                        --this.state._fsp;
                                        stream_member_name.add(member_name179.getTree());
                                        COLON180 = (Token)this.match(this.input, 20, FOLLOW_COLON_in_type_field_method_literal3090);
                                        stream_COLON.add(COLON180);
                                        this.pushFollow(FOLLOW_nonvoid_type_descriptor_in_type_field_method_literal3092);
                                        nonvoid_type_descriptor181 = this.nonvoid_type_descriptor();
                                        --this.state._fsp;
                                        stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor181.getTree());
                                        retval.tree = root_0;
                                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                                        root_0 = (CommonTree)this.adaptor.nil();
                                        root_1 = (CommonTree)this.adaptor.nil();
                                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(112, "I_ENCODED_FIELD"), root_1);
                                        if (stream_reference_type_descriptor.hasNext()) {
                                            this.adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree());
                                        }

                                        stream_reference_type_descriptor.reset();
                                        this.adaptor.addChild(root_1, stream_member_name.nextTree());
                                        this.adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
                                        this.adaptor.addChild(root_0, root_1);
                                        retval.tree = root_0;
                                        break label3938;
                                    case 2:
                                        this.pushFollow(FOLLOW_member_name_in_type_field_method_literal3115);
                                        member_name182 = this.member_name();
                                        --this.state._fsp;
                                        stream_member_name.add(member_name182.getTree());
                                        this.pushFollow(FOLLOW_method_prototype_in_type_field_method_literal3117);
                                        method_prototype183 = this.method_prototype();
                                        --this.state._fsp;
                                        stream_method_prototype.add(method_prototype183.getTree());
                                        retval.tree = root_0;
                                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                                        root_0 = (CommonTree)this.adaptor.nil();
                                        root_1 = (CommonTree)this.adaptor.nil();
                                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(113, "I_ENCODED_METHOD"), root_1);
                                        if (stream_reference_type_descriptor.hasNext()) {
                                            this.adaptor.addChild(root_1, stream_reference_type_descriptor.nextTree());
                                        }

                                        stream_reference_type_descriptor.reset();
                                        this.adaptor.addChild(root_1, stream_member_name.nextTree());
                                        this.adaptor.addChild(root_1, stream_method_prototype.nextTree());
                                        this.adaptor.addChild(root_0, root_1);
                                        retval.tree = root_0;
                                        break label3938;
                                }
                        }
                    case 3:
                        root_0 = (CommonTree)this.adaptor.nil();
                        PRIMITIVE_TYPE184 = (Token)this.match(this.input, 202, FOLLOW_PRIMITIVE_TYPE_in_type_field_method_literal3150);
                        PRIMITIVE_TYPE184_tree = (CommonTree)this.adaptor.create(PRIMITIVE_TYPE184);
                        this.adaptor.addChild(root_0, PRIMITIVE_TYPE184_tree);
                        break;
                    case 4:
                        root_0 = (CommonTree)this.adaptor.nil();
                        VOID_TYPE185 = (Token)this.match(this.input, 215, FOLLOW_VOID_TYPE_in_type_field_method_literal3156);
                        VOID_TYPE185_tree = (CommonTree)this.adaptor.create(VOID_TYPE185);
                        this.adaptor.addChild(root_0, VOID_TYPE185_tree);
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var80) {
                RecognitionException re = var80;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final call_site_reference_return call_site_reference() throws RecognitionException {
        call_site_reference_return retval = new call_site_reference_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token OPEN_PAREN187 = null;
        Token STRING_LITERAL188 = null;
        Token COMMA189 = null;
        Token COMMA191 = null;
        Token CLOSE_PAREN193 = null;
        Token AT194 = null;
        ParserRuleReturnScope simple_name186 = null;
        ParserRuleReturnScope method_prototype190 = null;
        ParserRuleReturnScope literal192 = null;
        ParserRuleReturnScope method_reference195 = null;
        CommonTree OPEN_PAREN187_tree = null;
        CommonTree STRING_LITERAL188_tree = null;
        CommonTree COMMA189_tree = null;
        CommonTree COMMA191_tree = null;
        CommonTree CLOSE_PAREN193_tree = null;
        CommonTree AT194_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_OPEN_PAREN = new RewriteRuleTokenStream(this.adaptor, "token OPEN_PAREN");
        RewriteRuleTokenStream stream_AT = new RewriteRuleTokenStream(this.adaptor, "token AT");
        RewriteRuleTokenStream stream_STRING_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token STRING_LITERAL");
        RewriteRuleTokenStream stream_CLOSE_PAREN = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_PAREN");
        RewriteRuleSubtreeStream stream_method_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule method_reference");
        RewriteRuleSubtreeStream stream_simple_name = new RewriteRuleSubtreeStream(this.adaptor, "rule simple_name");
        RewriteRuleSubtreeStream stream_method_prototype = new RewriteRuleSubtreeStream(this.adaptor, "rule method_prototype");
        RewriteRuleSubtreeStream stream_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule literal");

        try {
            this.pushFollow(FOLLOW_simple_name_in_call_site_reference3166);
            simple_name186 = this.simple_name();
            --this.state._fsp;
            stream_simple_name.add(simple_name186.getTree());
            OPEN_PAREN187 = (Token)this.match(this.input, 197, FOLLOW_OPEN_PAREN_in_call_site_reference3168);
            stream_OPEN_PAREN.add(OPEN_PAREN187);
            STRING_LITERAL188 = (Token)this.match(this.input, 211, FOLLOW_STRING_LITERAL_in_call_site_reference3170);
            stream_STRING_LITERAL.add(STRING_LITERAL188);
            COMMA189 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_call_site_reference3172);
            stream_COMMA.add(COMMA189);
            this.pushFollow(FOLLOW_method_prototype_in_call_site_reference3174);
            method_prototype190 = this.method_prototype();
            --this.state._fsp;
            stream_method_prototype.add(method_prototype190.getTree());

            while(true) {
                int alt33 = 2;
                int LA33_0 = this.input.LA(1);
                if (LA33_0 == 21) {
                    alt33 = 1;
                }

                switch (alt33) {
                    case 1:
                        COMMA191 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_call_site_reference3177);
                        stream_COMMA.add(COMMA191);
                        this.pushFollow(FOLLOW_literal_in_call_site_reference3179);
                        literal192 = this.literal();
                        --this.state._fsp;
                        stream_literal.add(literal192.getTree());
                        break;
                    default:
                        CLOSE_PAREN193 = (Token)this.match(this.input, 19, FOLLOW_CLOSE_PAREN_in_call_site_reference3183);
                        stream_CLOSE_PAREN.add(CLOSE_PAREN193);
                        AT194 = (Token)this.match(this.input, 10, FOLLOW_AT_in_call_site_reference3185);
                        stream_AT.add(AT194);
                        this.pushFollow(FOLLOW_method_reference_in_call_site_reference3187);
                        method_reference195 = this.method_reference();
                        --this.state._fsp;
                        stream_method_reference.add(method_reference195.getTree());
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        CommonTree root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(105, "I_CALL_SITE_REFERENCE"), root_1);
                        this.adaptor.addChild(root_1, stream_simple_name.nextTree());
                        this.adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
                        this.adaptor.addChild(root_1, stream_method_prototype.nextTree());
                        CommonTree root_2 = (CommonTree)this.adaptor.nil();
                        root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(104, "I_CALL_SITE_EXTRA_ARGUMENTS"), root_2);

                        while(stream_literal.hasNext()) {
                            this.adaptor.addChild(root_2, stream_literal.nextTree());
                        }

                        stream_literal.reset();
                        this.adaptor.addChild(root_1, root_2);
                        this.adaptor.addChild(root_1, stream_method_reference.nextTree());
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                        return retval;
                }
            }
        } catch (RecognitionException var34) {
            RecognitionException re = var34;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            return retval;
        } finally {
            ;
        }
    }

    public final method_handle_reference_return method_handle_reference() throws RecognitionException {
        method_handle_reference_return retval = new method_handle_reference_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token METHOD_HANDLE_TYPE_FIELD196 = null;
        Token AT197 = null;
        Token METHOD_HANDLE_TYPE_METHOD199 = null;
        Token AT200 = null;
        Token INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE202 = null;
        Token AT203 = null;
        ParserRuleReturnScope field_reference198 = null;
        ParserRuleReturnScope method_reference201 = null;
        ParserRuleReturnScope method_reference204 = null;
        CommonTree METHOD_HANDLE_TYPE_FIELD196_tree = null;
        CommonTree AT197_tree = null;
        CommonTree METHOD_HANDLE_TYPE_METHOD199_tree = null;
        CommonTree AT200_tree = null;
        CommonTree INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE202_tree = null;
        CommonTree AT203_tree = null;
        RewriteRuleTokenStream stream_AT = new RewriteRuleTokenStream(this.adaptor, "token AT");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE");
        RewriteRuleTokenStream stream_METHOD_HANDLE_TYPE_FIELD = new RewriteRuleTokenStream(this.adaptor, "token METHOD_HANDLE_TYPE_FIELD");
        RewriteRuleTokenStream stream_METHOD_HANDLE_TYPE_METHOD = new RewriteRuleTokenStream(this.adaptor, "token METHOD_HANDLE_TYPE_METHOD");
        RewriteRuleSubtreeStream stream_method_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule method_reference");
        RewriteRuleSubtreeStream stream_field_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule field_reference");

        try {
            try {
                int alt34 = 0;
                switch (this.input.LA(1)) {
                    case 82:
                        alt34 = 3;
                        break;
                    case 192:
                        alt34 = 1;
                        break;
                    case 193:
                        alt34 = 2;
                        break;
                    default:
                        NoViableAltException nvae = new NoViableAltException("", 34, 0, this.input);
                        throw nvae;
                }

                switch (alt34) {
                    case 1:
                        METHOD_HANDLE_TYPE_FIELD196 = (Token)this.match(this.input, 192, FOLLOW_METHOD_HANDLE_TYPE_FIELD_in_method_handle_reference3231);
                        stream_METHOD_HANDLE_TYPE_FIELD.add(METHOD_HANDLE_TYPE_FIELD196);
                        AT197 = (Token)this.match(this.input, 10, FOLLOW_AT_in_method_handle_reference3233);
                        stream_AT.add(AT197);
                        this.pushFollow(FOLLOW_field_reference_in_method_handle_reference3235);
                        field_reference198 = this.field_reference();
                        --this.state._fsp;
                        stream_field_reference.add(field_reference198.getTree());
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, stream_METHOD_HANDLE_TYPE_FIELD.nextNode());
                        this.adaptor.addChild(root_0, stream_field_reference.nextTree());
                        retval.tree = root_0;
                        break;
                    case 2:
                        METHOD_HANDLE_TYPE_METHOD199 = (Token)this.match(this.input, 193, FOLLOW_METHOD_HANDLE_TYPE_METHOD_in_method_handle_reference3247);
                        stream_METHOD_HANDLE_TYPE_METHOD.add(METHOD_HANDLE_TYPE_METHOD199);
                        AT200 = (Token)this.match(this.input, 10, FOLLOW_AT_in_method_handle_reference3249);
                        stream_AT.add(AT200);
                        this.pushFollow(FOLLOW_method_reference_in_method_handle_reference3251);
                        method_reference201 = this.method_reference();
                        --this.state._fsp;
                        stream_method_reference.add(method_reference201.getTree());
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, stream_METHOD_HANDLE_TYPE_METHOD.nextNode());
                        this.adaptor.addChild(root_0, stream_method_reference.nextTree());
                        retval.tree = root_0;
                        break;
                    case 3:
                        INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE202 = (Token)this.match(this.input, 82, FOLLOW_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE_in_method_handle_reference3263);
                        stream_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE.add(INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE202);
                        AT203 = (Token)this.match(this.input, 10, FOLLOW_AT_in_method_handle_reference3265);
                        stream_AT.add(AT203);
                        this.pushFollow(FOLLOW_method_reference_in_method_handle_reference3267);
                        method_reference204 = this.method_reference();
                        --this.state._fsp;
                        stream_method_reference.add(method_reference204.getTree());
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, stream_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE.nextNode());
                        this.adaptor.addChild(root_0, stream_method_reference.nextTree());
                        retval.tree = root_0;
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var29) {
                RecognitionException re = var29;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final method_handle_literal_return method_handle_literal() throws RecognitionException {
        method_handle_literal_return retval = new method_handle_literal_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        ParserRuleReturnScope method_handle_reference205 = null;
        RewriteRuleSubtreeStream stream_method_handle_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule method_handle_reference");

        try {
            try {
                this.pushFollow(FOLLOW_method_handle_reference_in_method_handle_literal3283);
                method_handle_reference205 = this.method_handle_reference();
                --this.state._fsp;
                stream_method_handle_reference.add(method_handle_reference205.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(114, "I_ENCODED_METHOD_HANDLE"), root_1);
                this.adaptor.addChild(root_1, stream_method_handle_reference.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var10) {
                RecognitionException re = var10;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final method_reference_return method_reference() throws RecognitionException {
        method_reference_return retval = new method_reference_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token ARROW207 = null;
        ParserRuleReturnScope reference_type_descriptor206 = null;
        ParserRuleReturnScope member_name208 = null;
        ParserRuleReturnScope method_prototype209 = null;
        CommonTree ARROW207_tree = null;
        RewriteRuleTokenStream stream_ARROW = new RewriteRuleTokenStream(this.adaptor, "token ARROW");
        RewriteRuleSubtreeStream stream_method_prototype = new RewriteRuleSubtreeStream(this.adaptor, "rule method_prototype");
        RewriteRuleSubtreeStream stream_member_name = new RewriteRuleSubtreeStream(this.adaptor, "rule member_name");
        RewriteRuleSubtreeStream stream_reference_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule reference_type_descriptor");

        try {
            try {
                int alt35 = 2;
                int LA35_0 = this.input.LA(1);
                if (LA35_0 == 8 || LA35_0 == 16) {
                    alt35 = 1;
                }

                switch (alt35) {
                    case 1:
                        this.pushFollow(FOLLOW_reference_type_descriptor_in_method_reference3304);
                        reference_type_descriptor206 = this.reference_type_descriptor();
                        --this.state._fsp;
                        stream_reference_type_descriptor.add(reference_type_descriptor206.getTree());
                        ARROW207 = (Token)this.match(this.input, 9, FOLLOW_ARROW_in_method_reference3306);
                        stream_ARROW.add(ARROW207);
                    default:
                        this.pushFollow(FOLLOW_member_name_in_method_reference3310);
                        member_name208 = this.member_name();
                        --this.state._fsp;
                        stream_member_name.add(member_name208.getTree());
                        this.pushFollow(FOLLOW_method_prototype_in_method_reference3312);
                        method_prototype209 = this.method_prototype();
                        --this.state._fsp;
                        stream_method_prototype.add(method_prototype209.getTree());
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        if (stream_reference_type_descriptor.hasNext()) {
                            this.adaptor.addChild(root_0, stream_reference_type_descriptor.nextTree());
                        }

                        stream_reference_type_descriptor.reset();
                        this.adaptor.addChild(root_0, stream_member_name.nextTree());
                        this.adaptor.addChild(root_0, stream_method_prototype.nextTree());
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                }
            } catch (RecognitionException var18) {
                RecognitionException re = var18;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final field_reference_return field_reference() throws RecognitionException {
        field_reference_return retval = new field_reference_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token ARROW211 = null;
        Token COLON213 = null;
        ParserRuleReturnScope reference_type_descriptor210 = null;
        ParserRuleReturnScope member_name212 = null;
        ParserRuleReturnScope nonvoid_type_descriptor214 = null;
        CommonTree ARROW211_tree = null;
        CommonTree COLON213_tree = null;
        RewriteRuleTokenStream stream_ARROW = new RewriteRuleTokenStream(this.adaptor, "token ARROW");
        RewriteRuleTokenStream stream_COLON = new RewriteRuleTokenStream(this.adaptor, "token COLON");
        RewriteRuleSubtreeStream stream_nonvoid_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule nonvoid_type_descriptor");
        RewriteRuleSubtreeStream stream_member_name = new RewriteRuleSubtreeStream(this.adaptor, "rule member_name");
        RewriteRuleSubtreeStream stream_reference_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule reference_type_descriptor");

        try {
            try {
                int alt36 = 2;
                int LA36_0 = this.input.LA(1);
                if (LA36_0 == 8 || LA36_0 == 16) {
                    alt36 = 1;
                }

                switch (alt36) {
                    case 1:
                        this.pushFollow(FOLLOW_reference_type_descriptor_in_field_reference3334);
                        reference_type_descriptor210 = this.reference_type_descriptor();
                        --this.state._fsp;
                        stream_reference_type_descriptor.add(reference_type_descriptor210.getTree());
                        ARROW211 = (Token)this.match(this.input, 9, FOLLOW_ARROW_in_field_reference3336);
                        stream_ARROW.add(ARROW211);
                    default:
                        this.pushFollow(FOLLOW_member_name_in_field_reference3340);
                        member_name212 = this.member_name();
                        --this.state._fsp;
                        stream_member_name.add(member_name212.getTree());
                        COLON213 = (Token)this.match(this.input, 20, FOLLOW_COLON_in_field_reference3342);
                        stream_COLON.add(COLON213);
                        this.pushFollow(FOLLOW_nonvoid_type_descriptor_in_field_reference3344);
                        nonvoid_type_descriptor214 = this.nonvoid_type_descriptor();
                        --this.state._fsp;
                        stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor214.getTree());
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        if (stream_reference_type_descriptor.hasNext()) {
                            this.adaptor.addChild(root_0, stream_reference_type_descriptor.nextTree());
                        }

                        stream_reference_type_descriptor.reset();
                        this.adaptor.addChild(root_0, stream_member_name.nextTree());
                        this.adaptor.addChild(root_0, stream_nonvoid_type_descriptor.nextTree());
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                }
            } catch (RecognitionException var21) {
                RecognitionException re = var21;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final label_return label() throws RecognitionException {
        label_return retval = new label_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token COLON215 = null;
        ParserRuleReturnScope simple_name216 = null;
        CommonTree COLON215_tree = null;
        RewriteRuleTokenStream stream_COLON = new RewriteRuleTokenStream(this.adaptor, "token COLON");
        RewriteRuleSubtreeStream stream_simple_name = new RewriteRuleSubtreeStream(this.adaptor, "rule simple_name");

        try {
            try {
                COLON215 = (Token)this.match(this.input, 20, FOLLOW_COLON_in_label3365);
                stream_COLON.add(COLON215);
                this.pushFollow(FOLLOW_simple_name_in_label3367);
                simple_name216 = this.simple_name();
                --this.state._fsp;
                stream_simple_name.add(simple_name216.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(122, COLON215, "I_LABEL"), root_1);
                this.adaptor.addChild(root_1, stream_simple_name.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var13) {
                RecognitionException re = var13;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final label_ref_return label_ref() throws RecognitionException {
        label_ref_return retval = new label_ref_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token COLON217 = null;
        ParserRuleReturnScope simple_name218 = null;
        CommonTree COLON217_tree = null;
        RewriteRuleTokenStream stream_COLON = new RewriteRuleTokenStream(this.adaptor, "token COLON");
        RewriteRuleSubtreeStream stream_simple_name = new RewriteRuleSubtreeStream(this.adaptor, "rule simple_name");

        try {
            try {
                COLON217 = (Token)this.match(this.input, 20, FOLLOW_COLON_in_label_ref3386);
                stream_COLON.add(COLON217);
                this.pushFollow(FOLLOW_simple_name_in_label_ref3388);
                simple_name218 = this.simple_name();
                --this.state._fsp;
                stream_simple_name.add(simple_name218.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                this.adaptor.addChild(root_0, stream_simple_name.nextTree());
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var12) {
                RecognitionException re = var12;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final register_list_return register_list() throws RecognitionException {
        register_list_return retval = new register_list_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token REGISTER219 = null;
        Token COMMA220 = null;
        Token REGISTER221 = null;
        CommonTree REGISTER219_tree = null;
        CommonTree COMMA220_tree = null;
        CommonTree REGISTER221_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");

        try {
            try {
                int alt38 = 0;
                int LA38_0 = this.input.LA(1);
                if (LA38_0 == 204) {
                    alt38 = 1;
                } else {
                    if (LA38_0 != 18) {
                        NoViableAltException nvae = new NoViableAltException("", 38, 0, this.input);
                        throw nvae;
                    }

                    alt38 = 2;
                }

                CommonTree root_1;
                label109:
                switch (alt38) {
                    case 1:
                        REGISTER219 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_register_list3402);
                        stream_REGISTER.add(REGISTER219);

                        while(true) {
                            int alt37 = 2;
                            int LA37_0 = this.input.LA(1);
                            if (LA37_0 == 21) {
                                alt37 = 1;
                            }

                            switch (alt37) {
                                case 1:
                                    COMMA220 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_register_list3405);
                                    stream_COMMA.add(COMMA220);
                                    REGISTER221 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_register_list3407);
                                    stream_REGISTER.add(REGISTER221);
                                    break;
                                default:
                                    retval.tree = root_0;
                                    new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                                    root_0 = (CommonTree)this.adaptor.nil();
                                    root_1 = (CommonTree)this.adaptor.nil();
                                    root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(138, retval.start, "I_REGISTER_LIST"), root_1);

                                    while(stream_REGISTER.hasNext()) {
                                        this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                                    }

                                    stream_REGISTER.reset();
                                    this.adaptor.addChild(root_0, root_1);
                                    retval.tree = root_0;
                                    break label109;
                            }
                        }
                    case 2:
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(138, retval.start, "I_REGISTER_LIST"), root_1);
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var18) {
                RecognitionException re = var18;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final register_range_return register_range() throws RecognitionException {
        register_range_return retval = new register_range_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token startreg = null;
        Token endreg = null;
        Token DOTDOT222 = null;
        CommonTree startreg_tree = null;
        CommonTree endreg_tree = null;
        CommonTree DOTDOT222_tree = null;
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_DOTDOT = new RewriteRuleTokenStream(this.adaptor, "token DOTDOT");

        try {
            try {
                int alt40 = 2;
                int LA40_0 = this.input.LA(1);
                if (LA40_0 == 204) {
                    alt40 = 1;
                }

                switch (alt40) {
                    case 1:
                        startreg = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_register_range3442);
                        stream_REGISTER.add(startreg);
                        int alt39 = 2;
                        int LA39_0 = this.input.LA(1);
                        if (LA39_0 == 22) {
                            alt39 = 1;
                        }

                        switch (alt39) {
                            case 1:
                                DOTDOT222 = (Token)this.match(this.input, 22, FOLLOW_DOTDOT_in_register_range3445);
                                stream_DOTDOT.add(DOTDOT222);
                                endreg = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_register_range3449);
                                stream_REGISTER.add(endreg);
                        }
                    default:
                        retval.tree = root_0;
                        RewriteRuleTokenStream stream_startreg = new RewriteRuleTokenStream(this.adaptor, "token startreg", startreg);
                        RewriteRuleTokenStream stream_endreg = new RewriteRuleTokenStream(this.adaptor, "token endreg", endreg);
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        CommonTree root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(139, retval.start, "I_REGISTER_RANGE"), root_1);
                        if (stream_startreg.hasNext()) {
                            this.adaptor.addChild(root_1, stream_startreg.nextNode());
                        }

                        stream_startreg.reset();
                        if (stream_endreg.hasNext()) {
                            this.adaptor.addChild(root_1, stream_endreg.nextNode());
                        }

                        stream_endreg.reset();
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                }
            } catch (RecognitionException var20) {
                RecognitionException re = var20;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final verification_error_reference_return verification_error_reference() throws RecognitionException {
        verification_error_reference_return retval = new verification_error_reference_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token CLASS_DESCRIPTOR223 = null;
        ParserRuleReturnScope field_reference224 = null;
        ParserRuleReturnScope method_reference225 = null;
        CommonTree CLASS_DESCRIPTOR223_tree = null;

        try {
            try {
                int alt41 = 0;
                alt41 = this.dfa41.predict(this.input);
                switch (alt41) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        CLASS_DESCRIPTOR223 = (Token)this.match(this.input, 16, FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference3478);
                        CLASS_DESCRIPTOR223_tree = (CommonTree)this.adaptor.create(CLASS_DESCRIPTOR223);
                        this.adaptor.addChild(root_0, CLASS_DESCRIPTOR223_tree);
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_field_reference_in_verification_error_reference3482);
                        field_reference224 = this.field_reference();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, field_reference224.getTree());
                        break;
                    case 3:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_method_reference_in_verification_error_reference3486);
                        method_reference225 = this.method_reference();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, method_reference225.getTree());
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var11) {
                RecognitionException re = var11;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final catch_directive_return catch_directive() throws RecognitionException {
        catch_directive_return retval = new catch_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token CATCH_DIRECTIVE226 = null;
        Token OPEN_BRACE228 = null;
        Token DOTDOT229 = null;
        Token CLOSE_BRACE230 = null;
        ParserRuleReturnScope from = null;
        ParserRuleReturnScope to = null;
        ParserRuleReturnScope using = null;
        ParserRuleReturnScope nonvoid_type_descriptor227 = null;
        CommonTree CATCH_DIRECTIVE226_tree = null;
        CommonTree OPEN_BRACE228_tree = null;
        CommonTree DOTDOT229_tree = null;
        CommonTree CLOSE_BRACE230_tree = null;
        RewriteRuleTokenStream stream_OPEN_BRACE = new RewriteRuleTokenStream(this.adaptor, "token OPEN_BRACE");
        RewriteRuleTokenStream stream_CLOSE_BRACE = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_BRACE");
        RewriteRuleTokenStream stream_DOTDOT = new RewriteRuleTokenStream(this.adaptor, "token DOTDOT");
        RewriteRuleTokenStream stream_CATCH_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token CATCH_DIRECTIVE");
        RewriteRuleSubtreeStream stream_label_ref = new RewriteRuleSubtreeStream(this.adaptor, "rule label_ref");
        RewriteRuleSubtreeStream stream_nonvoid_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule nonvoid_type_descriptor");

        try {
            try {
                CATCH_DIRECTIVE226 = (Token)this.match(this.input, 14, FOLLOW_CATCH_DIRECTIVE_in_catch_directive3496);
                stream_CATCH_DIRECTIVE.add(CATCH_DIRECTIVE226);
                this.pushFollow(FOLLOW_nonvoid_type_descriptor_in_catch_directive3498);
                nonvoid_type_descriptor227 = this.nonvoid_type_descriptor();
                --this.state._fsp;
                stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor227.getTree());
                OPEN_BRACE228 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_catch_directive3500);
                stream_OPEN_BRACE.add(OPEN_BRACE228);
                this.pushFollow(FOLLOW_label_ref_in_catch_directive3504);
                from = this.label_ref();
                --this.state._fsp;
                stream_label_ref.add(from.getTree());
                DOTDOT229 = (Token)this.match(this.input, 22, FOLLOW_DOTDOT_in_catch_directive3506);
                stream_DOTDOT.add(DOTDOT229);
                this.pushFollow(FOLLOW_label_ref_in_catch_directive3510);
                to = this.label_ref();
                --this.state._fsp;
                stream_label_ref.add(to.getTree());
                CLOSE_BRACE230 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_catch_directive3512);
                stream_CLOSE_BRACE.add(CLOSE_BRACE230);
                this.pushFollow(FOLLOW_label_ref_in_catch_directive3516);
                using = this.label_ref();
                --this.state._fsp;
                stream_label_ref.add(using.getTree());
                retval.tree = root_0;
                RewriteRuleSubtreeStream stream_using = new RewriteRuleSubtreeStream(this.adaptor, "rule using", using != null ? using.getTree() : null);
                RewriteRuleSubtreeStream stream_from = new RewriteRuleSubtreeStream(this.adaptor, "rule from", from != null ? from.getTree() : null);
                RewriteRuleSubtreeStream stream_to = new RewriteRuleSubtreeStream(this.adaptor, "rule to", to != null ? to.getTree() : null);
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(106, retval.start, "I_CATCH"), root_1);
                this.adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
                this.adaptor.addChild(root_1, stream_from.nextTree());
                this.adaptor.addChild(root_1, stream_to.nextTree());
                this.adaptor.addChild(root_1, stream_using.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var29) {
                RecognitionException re = var29;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final catchall_directive_return catchall_directive() throws RecognitionException {
        catchall_directive_return retval = new catchall_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token CATCHALL_DIRECTIVE231 = null;
        Token OPEN_BRACE232 = null;
        Token DOTDOT233 = null;
        Token CLOSE_BRACE234 = null;
        ParserRuleReturnScope from = null;
        ParserRuleReturnScope to = null;
        ParserRuleReturnScope using = null;
        CommonTree CATCHALL_DIRECTIVE231_tree = null;
        CommonTree OPEN_BRACE232_tree = null;
        CommonTree DOTDOT233_tree = null;
        CommonTree CLOSE_BRACE234_tree = null;
        RewriteRuleTokenStream stream_OPEN_BRACE = new RewriteRuleTokenStream(this.adaptor, "token OPEN_BRACE");
        RewriteRuleTokenStream stream_CLOSE_BRACE = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_BRACE");
        RewriteRuleTokenStream stream_DOTDOT = new RewriteRuleTokenStream(this.adaptor, "token DOTDOT");
        RewriteRuleTokenStream stream_CATCHALL_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token CATCHALL_DIRECTIVE");
        RewriteRuleSubtreeStream stream_label_ref = new RewriteRuleSubtreeStream(this.adaptor, "rule label_ref");

        try {
            try {
                CATCHALL_DIRECTIVE231 = (Token)this.match(this.input, 13, FOLLOW_CATCHALL_DIRECTIVE_in_catchall_directive3548);
                stream_CATCHALL_DIRECTIVE.add(CATCHALL_DIRECTIVE231);
                OPEN_BRACE232 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_catchall_directive3550);
                stream_OPEN_BRACE.add(OPEN_BRACE232);
                this.pushFollow(FOLLOW_label_ref_in_catchall_directive3554);
                from = this.label_ref();
                --this.state._fsp;
                stream_label_ref.add(from.getTree());
                DOTDOT233 = (Token)this.match(this.input, 22, FOLLOW_DOTDOT_in_catchall_directive3556);
                stream_DOTDOT.add(DOTDOT233);
                this.pushFollow(FOLLOW_label_ref_in_catchall_directive3560);
                to = this.label_ref();
                --this.state._fsp;
                stream_label_ref.add(to.getTree());
                CLOSE_BRACE234 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_catchall_directive3562);
                stream_CLOSE_BRACE.add(CLOSE_BRACE234);
                this.pushFollow(FOLLOW_label_ref_in_catchall_directive3566);
                using = this.label_ref();
                --this.state._fsp;
                stream_label_ref.add(using.getTree());
                retval.tree = root_0;
                RewriteRuleSubtreeStream stream_using = new RewriteRuleSubtreeStream(this.adaptor, "rule using", using != null ? using.getTree() : null);
                RewriteRuleSubtreeStream stream_from = new RewriteRuleSubtreeStream(this.adaptor, "rule from", from != null ? from.getTree() : null);
                RewriteRuleSubtreeStream stream_to = new RewriteRuleSubtreeStream(this.adaptor, "rule to", to != null ? to.getTree() : null);
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(107, retval.start, "I_CATCHALL"), root_1);
                this.adaptor.addChild(root_1, stream_from.nextTree());
                this.adaptor.addChild(root_1, stream_to.nextTree());
                this.adaptor.addChild(root_1, stream_using.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var27) {
                RecognitionException re = var27;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final parameter_directive_return parameter_directive() throws RecognitionException {
        parameter_directive_return retval = new parameter_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token PARAMETER_DIRECTIVE235 = null;
        Token REGISTER236 = null;
        Token COMMA237 = null;
        Token STRING_LITERAL238 = null;
        Token END_PARAMETER_DIRECTIVE240 = null;
        ParserRuleReturnScope annotation239 = null;
        CommonTree PARAMETER_DIRECTIVE235_tree = null;
        CommonTree REGISTER236_tree = null;
        CommonTree COMMA237_tree = null;
        CommonTree STRING_LITERAL238_tree = null;
        CommonTree END_PARAMETER_DIRECTIVE240_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_PARAMETER_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token PARAMETER_DIRECTIVE");
        RewriteRuleTokenStream stream_STRING_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token STRING_LITERAL");
        RewriteRuleTokenStream stream_END_PARAMETER_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token END_PARAMETER_DIRECTIVE");
        RewriteRuleSubtreeStream stream_annotation = new RewriteRuleSubtreeStream(this.adaptor, "rule annotation");
        List<CommonTree> annotations = new ArrayList();

        try {
            PARAMETER_DIRECTIVE235 = (Token)this.match(this.input, 199, FOLLOW_PARAMETER_DIRECTIVE_in_parameter_directive3605);
            stream_PARAMETER_DIRECTIVE.add(PARAMETER_DIRECTIVE235);
            REGISTER236 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_parameter_directive3607);
            stream_REGISTER.add(REGISTER236);
            int alt42 = 2;
            int LA42_0 = this.input.LA(1);
            if (LA42_0 == 21) {
                alt42 = 1;
            }

            switch (alt42) {
                case 1:
                    COMMA237 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_parameter_directive3610);
                    stream_COMMA.add(COMMA237);
                    STRING_LITERAL238 = (Token)this.match(this.input, 211, FOLLOW_STRING_LITERAL_in_parameter_directive3612);
                    stream_STRING_LITERAL.add(STRING_LITERAL238);
            }

            while(true) {
                int alt44 = 0;
                int alt43 = this.dfa43.predict(this.input);
                switch (alt43) {
                    case 1:
                        if (this.input.LA(1) != 5) {
                            throw new FailedPredicateException(this.input, "parameter_directive", "input.LA(1) == ANNOTATION_DIRECTIVE");
                        }

                        this.pushFollow(FOLLOW_annotation_in_parameter_directive3623);
                        annotation239 = this.annotation();
                        --this.state._fsp;
                        stream_annotation.add(annotation239.getTree());
                        annotations.add(annotation239 != null ? (CommonTree)annotation239.getTree() : null);
                        break;
                    default:
                        alt44 = 1;
                        int LA44_0 = this.input.LA(1);
                        if (LA44_0 == 31) {
                            alt44 = 1;
                        } else {
                            if (LA44_0 != 5 && LA44_0 != 7 && (LA44_0 < 13 || LA44_0 > 14) && LA44_0 != 20 && (LA44_0 < 28 || LA44_0 > 29) && LA44_0 != 35 && (LA44_0 < 44 || LA44_0 > 94) && (LA44_0 < 186 || LA44_0 > 188) && (LA44_0 < 198 || LA44_0 > 199) && LA44_0 != 203 && (LA44_0 < 205 || LA44_0 > 206) && (LA44_0 < 209 || LA44_0 > 210)) {
                                NoViableAltException nvae = new NoViableAltException("", 44, 0, this.input);
                                throw nvae;
                            }

                            alt44 = 2;
                        }

                        CommonTree root_1;
                        CommonTree root_2;
                        switch (alt44) {
                            case 1:
                                END_PARAMETER_DIRECTIVE240 = (Token)this.match(this.input, 31, FOLLOW_END_PARAMETER_DIRECTIVE_in_parameter_directive3636);
                                stream_END_PARAMETER_DIRECTIVE.add(END_PARAMETER_DIRECTIVE240);
                                retval.tree = root_0;
                                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                                root_0 = (CommonTree)this.adaptor.nil();
                                root_1 = (CommonTree)this.adaptor.nil();
                                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(133, retval.start, "I_PARAMETER"), root_1);
                                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                                if (stream_STRING_LITERAL.hasNext()) {
                                    this.adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
                                }

                                stream_STRING_LITERAL.reset();
                                root_2 = (CommonTree)this.adaptor.nil();
                                root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(100, "I_ANNOTATIONS"), root_2);

                                while(stream_annotation.hasNext()) {
                                    this.adaptor.addChild(root_2, stream_annotation.nextTree());
                                }

                                stream_annotation.reset();
                                this.adaptor.addChild(root_1, root_2);
                                this.adaptor.addChild(root_0, root_1);
                                retval.tree = root_0;
                                break;
                            case 2:
                                ((statements_and_directives_scope)this.statements_and_directives_stack.peek()).methodAnnotations.addAll(annotations);
                                retval.tree = root_0;
                                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                                root_0 = (CommonTree)this.adaptor.nil();
                                root_1 = (CommonTree)this.adaptor.nil();
                                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(133, retval.start, "I_PARAMETER"), root_1);
                                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                                if (stream_STRING_LITERAL.hasNext()) {
                                    this.adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
                                }

                                stream_STRING_LITERAL.reset();
                                root_2 = (CommonTree)this.adaptor.nil();
                                root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(100, "I_ANNOTATIONS"), root_2);
                                this.adaptor.addChild(root_1, root_2);
                                this.adaptor.addChild(root_0, root_1);
                                retval.tree = root_0;
                        }

                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                        return retval;
                }
            }
        } catch (RecognitionException var31) {
            RecognitionException re = var31;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            return retval;
        } finally {
            ;
        }
    }

    public final debug_directive_return debug_directive() throws RecognitionException {
        debug_directive_return retval = new debug_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        ParserRuleReturnScope line_directive241 = null;
        ParserRuleReturnScope local_directive242 = null;
        ParserRuleReturnScope end_local_directive243 = null;
        ParserRuleReturnScope restart_local_directive244 = null;
        ParserRuleReturnScope prologue_directive245 = null;
        ParserRuleReturnScope epilogue_directive246 = null;
        ParserRuleReturnScope source_directive247 = null;

        try {
            try {
                int alt45 = 0;
                switch (this.input.LA(1)) {
                    case 28:
                        alt45 = 3;
                        break;
                    case 35:
                        alt45 = 6;
                        break;
                    case 186:
                        alt45 = 1;
                        break;
                    case 188:
                        alt45 = 2;
                        break;
                    case 203:
                        alt45 = 5;
                        break;
                    case 206:
                        alt45 = 4;
                        break;
                    case 209:
                        alt45 = 7;
                        break;
                    default:
                        NoViableAltException nvae = new NoViableAltException("", 45, 0, this.input);
                        throw nvae;
                }

                switch (alt45) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_line_directive_in_debug_directive3709);
                        line_directive241 = this.line_directive();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, line_directive241.getTree());
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_local_directive_in_debug_directive3715);
                        local_directive242 = this.local_directive();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, local_directive242.getTree());
                        break;
                    case 3:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_end_local_directive_in_debug_directive3721);
                        end_local_directive243 = this.end_local_directive();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, end_local_directive243.getTree());
                        break;
                    case 4:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_restart_local_directive_in_debug_directive3727);
                        restart_local_directive244 = this.restart_local_directive();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, restart_local_directive244.getTree());
                        break;
                    case 5:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_prologue_directive_in_debug_directive3733);
                        prologue_directive245 = this.prologue_directive();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, prologue_directive245.getTree());
                        break;
                    case 6:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_epilogue_directive_in_debug_directive3739);
                        epilogue_directive246 = this.epilogue_directive();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, epilogue_directive246.getTree());
                        break;
                    case 7:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_source_directive_in_debug_directive3745);
                        source_directive247 = this.source_directive();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, source_directive247.getTree());
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var15) {
                RecognitionException re = var15;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final line_directive_return line_directive() throws RecognitionException {
        line_directive_return retval = new line_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token LINE_DIRECTIVE248 = null;
        ParserRuleReturnScope integral_literal249 = null;
        CommonTree LINE_DIRECTIVE248_tree = null;
        RewriteRuleTokenStream stream_LINE_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token LINE_DIRECTIVE");
        RewriteRuleSubtreeStream stream_integral_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule integral_literal");

        try {
            try {
                LINE_DIRECTIVE248 = (Token)this.match(this.input, 186, FOLLOW_LINE_DIRECTIVE_in_line_directive3755);
                stream_LINE_DIRECTIVE.add(LINE_DIRECTIVE248);
                this.pushFollow(FOLLOW_integral_literal_in_line_directive3757);
                integral_literal249 = this.integral_literal();
                --this.state._fsp;
                stream_integral_literal.add(integral_literal249.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(123, retval.start, "I_LINE"), root_1);
                this.adaptor.addChild(root_1, stream_integral_literal.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var13) {
                RecognitionException re = var13;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final local_directive_return local_directive() throws RecognitionException {
        local_directive_return retval = new local_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token name = null;
        Token signature = null;
        Token LOCAL_DIRECTIVE250 = null;
        Token REGISTER251 = null;
        Token COMMA252 = null;
        Token NULL_LITERAL253 = null;
        Token COLON254 = null;
        Token VOID_TYPE255 = null;
        Token COMMA257 = null;
        ParserRuleReturnScope nonvoid_type_descriptor256 = null;
        CommonTree name_tree = null;
        CommonTree signature_tree = null;
        CommonTree LOCAL_DIRECTIVE250_tree = null;
        CommonTree REGISTER251_tree = null;
        CommonTree COMMA252_tree = null;
        CommonTree NULL_LITERAL253_tree = null;
        CommonTree COLON254_tree = null;
        CommonTree VOID_TYPE255_tree = null;
        CommonTree COMMA257_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_LOCAL_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token LOCAL_DIRECTIVE");
        RewriteRuleTokenStream stream_VOID_TYPE = new RewriteRuleTokenStream(this.adaptor, "token VOID_TYPE");
        RewriteRuleTokenStream stream_STRING_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token STRING_LITERAL");
        RewriteRuleTokenStream stream_COLON = new RewriteRuleTokenStream(this.adaptor, "token COLON");
        RewriteRuleTokenStream stream_NULL_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token NULL_LITERAL");
        RewriteRuleSubtreeStream stream_nonvoid_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule nonvoid_type_descriptor");

        try {
            try {
                LOCAL_DIRECTIVE250 = (Token)this.match(this.input, 188, FOLLOW_LOCAL_DIRECTIVE_in_local_directive3780);
                stream_LOCAL_DIRECTIVE.add(LOCAL_DIRECTIVE250);
                REGISTER251 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_local_directive3782);
                stream_REGISTER.add(REGISTER251);
                int alt49 = 2;
                int LA49_0 = this.input.LA(1);
                if (LA49_0 == 21) {
                    alt49 = 1;
                }

                switch (alt49) {
                    case 1:
                        COMMA252 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_local_directive3785);
                        stream_COMMA.add(COMMA252);
                        int alt46 = 0;
                        int LA46_0 = this.input.LA(1);
                        if (LA46_0 == 195) {
                            alt46 = 1;
                        } else {
                            if (LA46_0 != 211) {
                                NoViableAltException nvae = new NoViableAltException("", 46, 0, this.input);
                                throw nvae;
                            }

                            alt46 = 2;
                        }

                        switch (alt46) {
                            case 1:
                                NULL_LITERAL253 = (Token)this.match(this.input, 195, FOLLOW_NULL_LITERAL_in_local_directive3788);
                                stream_NULL_LITERAL.add(NULL_LITERAL253);
                                break;
                            case 2:
                                name = (Token)this.match(this.input, 211, FOLLOW_STRING_LITERAL_in_local_directive3794);
                                stream_STRING_LITERAL.add(name);
                        }

                        COLON254 = (Token)this.match(this.input, 20, FOLLOW_COLON_in_local_directive3797);
                        stream_COLON.add(COLON254);
                        int alt47 = 0;
                        int LA47_0 = this.input.LA(1);
                        if (LA47_0 == 215) {
                            alt47 = 1;
                        } else {
                            if (LA47_0 != 8 && LA47_0 != 16 && LA47_0 != 202) {
                                NoViableAltException nvae = new NoViableAltException("", 47, 0, this.input);
                                throw nvae;
                            }

                            alt47 = 2;
                        }

                        switch (alt47) {
                            case 1:
                                VOID_TYPE255 = (Token)this.match(this.input, 215, FOLLOW_VOID_TYPE_in_local_directive3800);
                                stream_VOID_TYPE.add(VOID_TYPE255);
                                break;
                            case 2:
                                this.pushFollow(FOLLOW_nonvoid_type_descriptor_in_local_directive3804);
                                nonvoid_type_descriptor256 = this.nonvoid_type_descriptor();
                                --this.state._fsp;
                                stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor256.getTree());
                        }

                        int alt48 = 2;
                        int LA48_0 = this.input.LA(1);
                        if (LA48_0 == 21) {
                            alt48 = 1;
                        }

                        switch (alt48) {
                            case 1:
                                COMMA257 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_local_directive3838);
                                stream_COMMA.add(COMMA257);
                                signature = (Token)this.match(this.input, 211, FOLLOW_STRING_LITERAL_in_local_directive3842);
                                stream_STRING_LITERAL.add(signature);
                        }
                    default:
                        retval.tree = root_0;
                        RewriteRuleTokenStream stream_signature = new RewriteRuleTokenStream(this.adaptor, "token signature", signature);
                        RewriteRuleTokenStream stream_name = new RewriteRuleTokenStream(this.adaptor, "token name", name);
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        CommonTree root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(124, retval.start, "I_LOCAL"), root_1);
                        this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                        if (stream_NULL_LITERAL.hasNext()) {
                            this.adaptor.addChild(root_1, stream_NULL_LITERAL.nextNode());
                        }

                        stream_NULL_LITERAL.reset();
                        if (stream_name.hasNext()) {
                            this.adaptor.addChild(root_1, stream_name.nextNode());
                        }

                        stream_name.reset();
                        if (stream_nonvoid_type_descriptor.hasNext()) {
                            this.adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
                        }

                        stream_nonvoid_type_descriptor.reset();
                        if (stream_signature.hasNext()) {
                            this.adaptor.addChild(root_1, stream_signature.nextNode());
                        }

                        stream_signature.reset();
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                }
            } catch (RecognitionException var41) {
                RecognitionException re = var41;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final end_local_directive_return end_local_directive() throws RecognitionException {
        end_local_directive_return retval = new end_local_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token END_LOCAL_DIRECTIVE258 = null;
        Token REGISTER259 = null;
        CommonTree END_LOCAL_DIRECTIVE258_tree = null;
        CommonTree REGISTER259_tree = null;
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_END_LOCAL_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token END_LOCAL_DIRECTIVE");

        try {
            try {
                END_LOCAL_DIRECTIVE258 = (Token)this.match(this.input, 28, FOLLOW_END_LOCAL_DIRECTIVE_in_end_local_directive3884);
                stream_END_LOCAL_DIRECTIVE.add(END_LOCAL_DIRECTIVE258);
                REGISTER259 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_end_local_directive3886);
                stream_REGISTER.add(REGISTER259);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(115, retval.start, "I_END_LOCAL"), root_1);
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final restart_local_directive_return restart_local_directive() throws RecognitionException {
        restart_local_directive_return retval = new restart_local_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token RESTART_LOCAL_DIRECTIVE260 = null;
        Token REGISTER261 = null;
        CommonTree RESTART_LOCAL_DIRECTIVE260_tree = null;
        CommonTree REGISTER261_tree = null;
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_RESTART_LOCAL_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token RESTART_LOCAL_DIRECTIVE");

        try {
            try {
                RESTART_LOCAL_DIRECTIVE260 = (Token)this.match(this.input, 206, FOLLOW_RESTART_LOCAL_DIRECTIVE_in_restart_local_directive3909);
                stream_RESTART_LOCAL_DIRECTIVE.add(RESTART_LOCAL_DIRECTIVE260);
                REGISTER261 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_restart_local_directive3911);
                stream_REGISTER.add(REGISTER261);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(140, retval.start, "I_RESTART_LOCAL"), root_1);
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final prologue_directive_return prologue_directive() throws RecognitionException {
        prologue_directive_return retval = new prologue_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token PROLOGUE_DIRECTIVE262 = null;
        CommonTree PROLOGUE_DIRECTIVE262_tree = null;
        RewriteRuleTokenStream stream_PROLOGUE_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token PROLOGUE_DIRECTIVE");

        try {
            try {
                PROLOGUE_DIRECTIVE262 = (Token)this.match(this.input, 203, FOLLOW_PROLOGUE_DIRECTIVE_in_prologue_directive3934);
                stream_PROLOGUE_DIRECTIVE.add(PROLOGUE_DIRECTIVE262);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(136, retval.start, "I_PROLOGUE"), root_1);
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var11) {
                RecognitionException re = var11;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final epilogue_directive_return epilogue_directive() throws RecognitionException {
        epilogue_directive_return retval = new epilogue_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token EPILOGUE_DIRECTIVE263 = null;
        CommonTree EPILOGUE_DIRECTIVE263_tree = null;
        RewriteRuleTokenStream stream_EPILOGUE_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token EPILOGUE_DIRECTIVE");

        try {
            try {
                EPILOGUE_DIRECTIVE263 = (Token)this.match(this.input, 35, FOLLOW_EPILOGUE_DIRECTIVE_in_epilogue_directive3955);
                stream_EPILOGUE_DIRECTIVE.add(EPILOGUE_DIRECTIVE263);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(116, retval.start, "I_EPILOGUE"), root_1);
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var11) {
                RecognitionException re = var11;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final source_directive_return source_directive() throws RecognitionException {
        source_directive_return retval = new source_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token SOURCE_DIRECTIVE264 = null;
        Token STRING_LITERAL265 = null;
        CommonTree SOURCE_DIRECTIVE264_tree = null;
        CommonTree STRING_LITERAL265_tree = null;
        RewriteRuleTokenStream stream_SOURCE_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token SOURCE_DIRECTIVE");
        RewriteRuleTokenStream stream_STRING_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token STRING_LITERAL");

        try {
            try {
                SOURCE_DIRECTIVE264 = (Token)this.match(this.input, 209, FOLLOW_SOURCE_DIRECTIVE_in_source_directive3976);
                stream_SOURCE_DIRECTIVE.add(SOURCE_DIRECTIVE264);
                int alt50 = 2;
                int LA50_0 = this.input.LA(1);
                if (LA50_0 == 211) {
                    alt50 = 1;
                }

                switch (alt50) {
                    case 1:
                        STRING_LITERAL265 = (Token)this.match(this.input, 211, FOLLOW_STRING_LITERAL_in_source_directive3978);
                        stream_STRING_LITERAL.add(STRING_LITERAL265);
                    default:
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        CommonTree root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(141, retval.start, "I_SOURCE"), root_1);
                        if (stream_STRING_LITERAL.hasNext()) {
                            this.adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
                        }

                        stream_STRING_LITERAL.reset();
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                }
            } catch (RecognitionException var16) {
                RecognitionException re = var16;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final instruction_format12x_return instruction_format12x() throws RecognitionException {
        instruction_format12x_return retval = new instruction_format12x_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT12x266 = null;
        Token INSTRUCTION_FORMAT12x_OR_ID267 = null;
        CommonTree INSTRUCTION_FORMAT12x266_tree = null;
        CommonTree INSTRUCTION_FORMAT12x_OR_ID267_tree = null;
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT12x_OR_ID = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT12x_OR_ID");

        try {
            try {
                int alt51 = 0;
                int LA51_0 = this.input.LA(1);
                if (LA51_0 == 49) {
                    alt51 = 1;
                } else {
                    if (LA51_0 != 50) {
                        NoViableAltException nvae = new NoViableAltException("", 51, 0, this.input);
                        throw nvae;
                    }

                    alt51 = 2;
                }

                switch (alt51) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        INSTRUCTION_FORMAT12x266 = (Token)this.match(this.input, 49, FOLLOW_INSTRUCTION_FORMAT12x_in_instruction_format12x4003);
                        INSTRUCTION_FORMAT12x266_tree = (CommonTree)this.adaptor.create(INSTRUCTION_FORMAT12x266);
                        this.adaptor.addChild(root_0, INSTRUCTION_FORMAT12x266_tree);
                        break;
                    case 2:
                        INSTRUCTION_FORMAT12x_OR_ID267 = (Token)this.match(this.input, 50, FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_instruction_format12x4009);
                        stream_INSTRUCTION_FORMAT12x_OR_ID.add(INSTRUCTION_FORMAT12x_OR_ID267);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(49, INSTRUCTION_FORMAT12x_OR_ID267));
                        retval.tree = root_0;
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final instruction_format22s_return instruction_format22s() throws RecognitionException {
        instruction_format22s_return retval = new instruction_format22s_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT22s268 = null;
        Token INSTRUCTION_FORMAT22s_OR_ID269 = null;
        CommonTree INSTRUCTION_FORMAT22s268_tree = null;
        CommonTree INSTRUCTION_FORMAT22s_OR_ID269_tree = null;
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22s_OR_ID = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22s_OR_ID");

        try {
            try {
                int alt52 = 0;
                int LA52_0 = this.input.LA(1);
                if (LA52_0 == 68) {
                    alt52 = 1;
                } else {
                    if (LA52_0 != 69) {
                        NoViableAltException nvae = new NoViableAltException("", 52, 0, this.input);
                        throw nvae;
                    }

                    alt52 = 2;
                }

                switch (alt52) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        INSTRUCTION_FORMAT22s268 = (Token)this.match(this.input, 68, FOLLOW_INSTRUCTION_FORMAT22s_in_instruction_format22s4024);
                        INSTRUCTION_FORMAT22s268_tree = (CommonTree)this.adaptor.create(INSTRUCTION_FORMAT22s268);
                        this.adaptor.addChild(root_0, INSTRUCTION_FORMAT22s268_tree);
                        break;
                    case 2:
                        INSTRUCTION_FORMAT22s_OR_ID269 = (Token)this.match(this.input, 69, FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_instruction_format22s4030);
                        stream_INSTRUCTION_FORMAT22s_OR_ID.add(INSTRUCTION_FORMAT22s_OR_ID269);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(68, INSTRUCTION_FORMAT22s_OR_ID269));
                        retval.tree = root_0;
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final instruction_format31i_return instruction_format31i() throws RecognitionException {
        instruction_format31i_return retval = new instruction_format31i_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT31i270 = null;
        Token INSTRUCTION_FORMAT31i_OR_ID271 = null;
        CommonTree INSTRUCTION_FORMAT31i270_tree = null;
        CommonTree INSTRUCTION_FORMAT31i_OR_ID271_tree = null;
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31i_OR_ID = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT31i_OR_ID");

        try {
            try {
                int alt53 = 0;
                int LA53_0 = this.input.LA(1);
                if (LA53_0 == 75) {
                    alt53 = 1;
                } else {
                    if (LA53_0 != 76) {
                        NoViableAltException nvae = new NoViableAltException("", 53, 0, this.input);
                        throw nvae;
                    }

                    alt53 = 2;
                }

                switch (alt53) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        INSTRUCTION_FORMAT31i270 = (Token)this.match(this.input, 75, FOLLOW_INSTRUCTION_FORMAT31i_in_instruction_format31i4045);
                        INSTRUCTION_FORMAT31i270_tree = (CommonTree)this.adaptor.create(INSTRUCTION_FORMAT31i270);
                        this.adaptor.addChild(root_0, INSTRUCTION_FORMAT31i270_tree);
                        break;
                    case 2:
                        INSTRUCTION_FORMAT31i_OR_ID271 = (Token)this.match(this.input, 76, FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_instruction_format31i4051);
                        stream_INSTRUCTION_FORMAT31i_OR_ID.add(INSTRUCTION_FORMAT31i_OR_ID271);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(75, INSTRUCTION_FORMAT31i_OR_ID271));
                        retval.tree = root_0;
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final instruction_format35c_method_return instruction_format35c_method() throws RecognitionException {
        instruction_format35c_method_return retval = new instruction_format35c_method_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT35c_METHOD272 = null;
        Token INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE273 = null;
        CommonTree INSTRUCTION_FORMAT35c_METHOD272_tree = null;
        CommonTree INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE273_tree = null;
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE");

        try {
            try {
                int alt54 = 0;
                int LA54_0 = this.input.LA(1);
                if (LA54_0 == 80) {
                    alt54 = 1;
                } else {
                    if (LA54_0 != 82) {
                        NoViableAltException nvae = new NoViableAltException("", 54, 0, this.input);
                        throw nvae;
                    }

                    alt54 = 2;
                }

                switch (alt54) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        INSTRUCTION_FORMAT35c_METHOD272 = (Token)this.match(this.input, 80, FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_instruction_format35c_method4068);
                        INSTRUCTION_FORMAT35c_METHOD272_tree = (CommonTree)this.adaptor.create(INSTRUCTION_FORMAT35c_METHOD272);
                        this.adaptor.addChild(root_0, INSTRUCTION_FORMAT35c_METHOD272_tree);
                        break;
                    case 2:
                        INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE273 = (Token)this.match(this.input, 82, FOLLOW_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE_in_instruction_format35c_method4074);
                        stream_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE.add(INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE273);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.adaptor.addChild(root_0, (CommonTree)this.adaptor.create(80, INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE273));
                        retval.tree = root_0;
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final instruction_return instruction() throws RecognitionException {
        instruction_return retval = new instruction_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        ParserRuleReturnScope insn_format10t274 = null;
        ParserRuleReturnScope insn_format10x275 = null;
        ParserRuleReturnScope insn_format10x_odex276 = null;
        ParserRuleReturnScope insn_format11n277 = null;
        ParserRuleReturnScope insn_format11x278 = null;
        ParserRuleReturnScope insn_format12x279 = null;
        ParserRuleReturnScope insn_format20bc280 = null;
        ParserRuleReturnScope insn_format20t281 = null;
        ParserRuleReturnScope insn_format21c_field282 = null;
        ParserRuleReturnScope insn_format21c_field_odex283 = null;
        ParserRuleReturnScope insn_format21c_method_handle284 = null;
        ParserRuleReturnScope insn_format21c_method_type285 = null;
        ParserRuleReturnScope insn_format21c_string286 = null;
        ParserRuleReturnScope insn_format21c_type287 = null;
        ParserRuleReturnScope insn_format21ih288 = null;
        ParserRuleReturnScope insn_format21lh289 = null;
        ParserRuleReturnScope insn_format21s290 = null;
        ParserRuleReturnScope insn_format21t291 = null;
        ParserRuleReturnScope insn_format22b292 = null;
        ParserRuleReturnScope insn_format22c_field293 = null;
        ParserRuleReturnScope insn_format22c_field_odex294 = null;
        ParserRuleReturnScope insn_format22c_type295 = null;
        ParserRuleReturnScope insn_format22cs_field296 = null;
        ParserRuleReturnScope insn_format22s297 = null;
        ParserRuleReturnScope insn_format22t298 = null;
        ParserRuleReturnScope insn_format22x299 = null;
        ParserRuleReturnScope insn_format23x300 = null;
        ParserRuleReturnScope insn_format30t301 = null;
        ParserRuleReturnScope insn_format31c302 = null;
        ParserRuleReturnScope insn_format31i303 = null;
        ParserRuleReturnScope insn_format31t304 = null;
        ParserRuleReturnScope insn_format32x305 = null;
        ParserRuleReturnScope insn_format35c_call_site306 = null;
        ParserRuleReturnScope insn_format35c_method307 = null;
        ParserRuleReturnScope insn_format35c_type308 = null;
        ParserRuleReturnScope insn_format35c_method_odex309 = null;
        ParserRuleReturnScope insn_format35mi_method310 = null;
        ParserRuleReturnScope insn_format35ms_method311 = null;
        ParserRuleReturnScope insn_format3rc_call_site312 = null;
        ParserRuleReturnScope insn_format3rc_method313 = null;
        ParserRuleReturnScope insn_format3rc_method_odex314 = null;
        ParserRuleReturnScope insn_format3rc_type315 = null;
        ParserRuleReturnScope insn_format3rmi_method316 = null;
        ParserRuleReturnScope insn_format3rms_method317 = null;
        ParserRuleReturnScope insn_format45cc_method318 = null;
        ParserRuleReturnScope insn_format4rcc_method319 = null;
        ParserRuleReturnScope insn_format51l320 = null;
        ParserRuleReturnScope insn_array_data_directive321 = null;
        ParserRuleReturnScope insn_packed_switch_directive322 = null;
        ParserRuleReturnScope insn_sparse_switch_directive323 = null;

        try {
            try {
                int alt55 = 0;
                switch (this.input.LA(1)) {
                    case 7:
                        alt55 = 48;
                        break;
                    case 8:
                    case 9:
                    case 10:
                    case 11:
                    case 12:
                    case 13:
                    case 14:
                    case 15:
                    case 16:
                    case 17:
                    case 18:
                    case 19:
                    case 20:
                    case 21:
                    case 22:
                    case 23:
                    case 24:
                    case 25:
                    case 26:
                    case 27:
                    case 28:
                    case 29:
                    case 30:
                    case 31:
                    case 32:
                    case 33:
                    case 34:
                    case 35:
                    case 36:
                    case 37:
                    case 38:
                    case 39:
                    case 40:
                    case 41:
                    case 42:
                    case 43:
                    case 95:
                    case 96:
                    case 97:
                    case 98:
                    case 99:
                    case 100:
                    case 101:
                    case 102:
                    case 103:
                    case 104:
                    case 105:
                    case 106:
                    case 107:
                    case 108:
                    case 109:
                    case 110:
                    case 111:
                    case 112:
                    case 113:
                    case 114:
                    case 115:
                    case 116:
                    case 117:
                    case 118:
                    case 119:
                    case 120:
                    case 121:
                    case 122:
                    case 123:
                    case 124:
                    case 125:
                    case 126:
                    case 127:
                    case 128:
                    case 129:
                    case 130:
                    case 131:
                    case 132:
                    case 133:
                    case 134:
                    case 135:
                    case 136:
                    case 137:
                    case 138:
                    case 139:
                    case 140:
                    case 141:
                    case 142:
                    case 143:
                    case 144:
                    case 145:
                    case 146:
                    case 147:
                    case 148:
                    case 149:
                    case 150:
                    case 151:
                    case 152:
                    case 153:
                    case 154:
                    case 155:
                    case 156:
                    case 157:
                    case 158:
                    case 159:
                    case 160:
                    case 161:
                    case 162:
                    case 163:
                    case 164:
                    case 165:
                    case 166:
                    case 167:
                    case 168:
                    case 169:
                    case 170:
                    case 171:
                    case 172:
                    case 173:
                    case 174:
                    case 175:
                    case 176:
                    case 177:
                    case 178:
                    case 179:
                    case 180:
                    case 181:
                    case 182:
                    case 183:
                    case 184:
                    case 185:
                    case 186:
                    case 187:
                    case 188:
                    case 189:
                    case 190:
                    case 191:
                    case 192:
                    case 193:
                    case 194:
                    case 195:
                    case 196:
                    case 197:
                    case 199:
                    case 200:
                    case 201:
                    case 202:
                    case 203:
                    case 204:
                    case 205:
                    case 206:
                    case 207:
                    case 208:
                    case 209:
                    default:
                        NoViableAltException nvae = new NoViableAltException("", 55, 0, this.input);
                        throw nvae;
                    case 44:
                        alt55 = 1;
                        break;
                    case 45:
                        alt55 = 2;
                        break;
                    case 46:
                        alt55 = 3;
                        break;
                    case 47:
                        alt55 = 4;
                        break;
                    case 48:
                        alt55 = 5;
                        break;
                    case 49:
                    case 50:
                        alt55 = 6;
                        break;
                    case 51:
                        alt55 = 7;
                        break;
                    case 52:
                        alt55 = 8;
                        break;
                    case 53:
                        alt55 = 9;
                        break;
                    case 54:
                        alt55 = 10;
                        break;
                    case 55:
                        alt55 = 11;
                        break;
                    case 56:
                        alt55 = 12;
                        break;
                    case 57:
                        alt55 = 13;
                        break;
                    case 58:
                        alt55 = 14;
                        break;
                    case 59:
                        alt55 = 15;
                        break;
                    case 60:
                        alt55 = 16;
                        break;
                    case 61:
                        alt55 = 17;
                        break;
                    case 62:
                        alt55 = 18;
                        break;
                    case 63:
                        alt55 = 19;
                        break;
                    case 64:
                        alt55 = 20;
                        break;
                    case 65:
                        alt55 = 21;
                        break;
                    case 66:
                        alt55 = 22;
                        break;
                    case 67:
                        alt55 = 23;
                        break;
                    case 68:
                    case 69:
                        alt55 = 24;
                        break;
                    case 70:
                        alt55 = 25;
                        break;
                    case 71:
                        alt55 = 26;
                        break;
                    case 72:
                        alt55 = 27;
                        break;
                    case 73:
                        alt55 = 28;
                        break;
                    case 74:
                        alt55 = 29;
                        break;
                    case 75:
                    case 76:
                        alt55 = 30;
                        break;
                    case 77:
                        alt55 = 31;
                        break;
                    case 78:
                        alt55 = 32;
                        break;
                    case 79:
                        alt55 = 33;
                        break;
                    case 80:
                    case 82:
                        alt55 = 34;
                        break;
                    case 81:
                        alt55 = 36;
                        break;
                    case 83:
                        alt55 = 35;
                        break;
                    case 84:
                        alt55 = 37;
                        break;
                    case 85:
                        alt55 = 38;
                        break;
                    case 86:
                        alt55 = 39;
                        break;
                    case 87:
                        alt55 = 40;
                        break;
                    case 88:
                        alt55 = 41;
                        break;
                    case 89:
                        alt55 = 42;
                        break;
                    case 90:
                        alt55 = 43;
                        break;
                    case 91:
                        alt55 = 44;
                        break;
                    case 92:
                        alt55 = 45;
                        break;
                    case 93:
                        alt55 = 46;
                        break;
                    case 94:
                        alt55 = 47;
                        break;
                    case 198:
                        alt55 = 49;
                        break;
                    case 210:
                        alt55 = 50;
                }

                switch (alt55) {
                    case 1:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format10t_in_instruction4089);
                        insn_format10t274 = this.insn_format10t();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format10t274.getTree());
                        break;
                    case 2:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format10x_in_instruction4095);
                        insn_format10x275 = this.insn_format10x();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format10x275.getTree());
                        break;
                    case 3:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format10x_odex_in_instruction4101);
                        insn_format10x_odex276 = this.insn_format10x_odex();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format10x_odex276.getTree());
                        break;
                    case 4:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format11n_in_instruction4107);
                        insn_format11n277 = this.insn_format11n();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format11n277.getTree());
                        break;
                    case 5:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format11x_in_instruction4113);
                        insn_format11x278 = this.insn_format11x();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format11x278.getTree());
                        break;
                    case 6:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format12x_in_instruction4119);
                        insn_format12x279 = this.insn_format12x();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format12x279.getTree());
                        break;
                    case 7:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format20bc_in_instruction4125);
                        insn_format20bc280 = this.insn_format20bc();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format20bc280.getTree());
                        break;
                    case 8:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format20t_in_instruction4131);
                        insn_format20t281 = this.insn_format20t();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format20t281.getTree());
                        break;
                    case 9:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format21c_field_in_instruction4137);
                        insn_format21c_field282 = this.insn_format21c_field();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format21c_field282.getTree());
                        break;
                    case 10:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format21c_field_odex_in_instruction4143);
                        insn_format21c_field_odex283 = this.insn_format21c_field_odex();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format21c_field_odex283.getTree());
                        break;
                    case 11:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format21c_method_handle_in_instruction4149);
                        insn_format21c_method_handle284 = this.insn_format21c_method_handle();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format21c_method_handle284.getTree());
                        break;
                    case 12:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format21c_method_type_in_instruction4155);
                        insn_format21c_method_type285 = this.insn_format21c_method_type();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format21c_method_type285.getTree());
                        break;
                    case 13:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format21c_string_in_instruction4161);
                        insn_format21c_string286 = this.insn_format21c_string();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format21c_string286.getTree());
                        break;
                    case 14:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format21c_type_in_instruction4167);
                        insn_format21c_type287 = this.insn_format21c_type();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format21c_type287.getTree());
                        break;
                    case 15:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format21ih_in_instruction4173);
                        insn_format21ih288 = this.insn_format21ih();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format21ih288.getTree());
                        break;
                    case 16:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format21lh_in_instruction4179);
                        insn_format21lh289 = this.insn_format21lh();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format21lh289.getTree());
                        break;
                    case 17:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format21s_in_instruction4185);
                        insn_format21s290 = this.insn_format21s();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format21s290.getTree());
                        break;
                    case 18:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format21t_in_instruction4191);
                        insn_format21t291 = this.insn_format21t();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format21t291.getTree());
                        break;
                    case 19:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format22b_in_instruction4197);
                        insn_format22b292 = this.insn_format22b();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format22b292.getTree());
                        break;
                    case 20:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format22c_field_in_instruction4203);
                        insn_format22c_field293 = this.insn_format22c_field();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format22c_field293.getTree());
                        break;
                    case 21:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format22c_field_odex_in_instruction4209);
                        insn_format22c_field_odex294 = this.insn_format22c_field_odex();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format22c_field_odex294.getTree());
                        break;
                    case 22:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format22c_type_in_instruction4215);
                        insn_format22c_type295 = this.insn_format22c_type();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format22c_type295.getTree());
                        break;
                    case 23:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format22cs_field_in_instruction4221);
                        insn_format22cs_field296 = this.insn_format22cs_field();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format22cs_field296.getTree());
                        break;
                    case 24:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format22s_in_instruction4227);
                        insn_format22s297 = this.insn_format22s();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format22s297.getTree());
                        break;
                    case 25:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format22t_in_instruction4233);
                        insn_format22t298 = this.insn_format22t();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format22t298.getTree());
                        break;
                    case 26:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format22x_in_instruction4239);
                        insn_format22x299 = this.insn_format22x();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format22x299.getTree());
                        break;
                    case 27:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format23x_in_instruction4245);
                        insn_format23x300 = this.insn_format23x();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format23x300.getTree());
                        break;
                    case 28:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format30t_in_instruction4251);
                        insn_format30t301 = this.insn_format30t();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format30t301.getTree());
                        break;
                    case 29:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format31c_in_instruction4257);
                        insn_format31c302 = this.insn_format31c();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format31c302.getTree());
                        break;
                    case 30:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format31i_in_instruction4263);
                        insn_format31i303 = this.insn_format31i();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format31i303.getTree());
                        break;
                    case 31:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format31t_in_instruction4269);
                        insn_format31t304 = this.insn_format31t();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format31t304.getTree());
                        break;
                    case 32:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format32x_in_instruction4275);
                        insn_format32x305 = this.insn_format32x();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format32x305.getTree());
                        break;
                    case 33:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format35c_call_site_in_instruction4281);
                        insn_format35c_call_site306 = this.insn_format35c_call_site();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format35c_call_site306.getTree());
                        break;
                    case 34:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format35c_method_in_instruction4287);
                        insn_format35c_method307 = this.insn_format35c_method();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format35c_method307.getTree());
                        break;
                    case 35:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format35c_type_in_instruction4293);
                        insn_format35c_type308 = this.insn_format35c_type();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format35c_type308.getTree());
                        break;
                    case 36:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format35c_method_odex_in_instruction4299);
                        insn_format35c_method_odex309 = this.insn_format35c_method_odex();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format35c_method_odex309.getTree());
                        break;
                    case 37:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format35mi_method_in_instruction4305);
                        insn_format35mi_method310 = this.insn_format35mi_method();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format35mi_method310.getTree());
                        break;
                    case 38:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format35ms_method_in_instruction4311);
                        insn_format35ms_method311 = this.insn_format35ms_method();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format35ms_method311.getTree());
                        break;
                    case 39:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format3rc_call_site_in_instruction4317);
                        insn_format3rc_call_site312 = this.insn_format3rc_call_site();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format3rc_call_site312.getTree());
                        break;
                    case 40:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format3rc_method_in_instruction4323);
                        insn_format3rc_method313 = this.insn_format3rc_method();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format3rc_method313.getTree());
                        break;
                    case 41:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format3rc_method_odex_in_instruction4329);
                        insn_format3rc_method_odex314 = this.insn_format3rc_method_odex();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format3rc_method_odex314.getTree());
                        break;
                    case 42:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format3rc_type_in_instruction4335);
                        insn_format3rc_type315 = this.insn_format3rc_type();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format3rc_type315.getTree());
                        break;
                    case 43:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format3rmi_method_in_instruction4341);
                        insn_format3rmi_method316 = this.insn_format3rmi_method();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format3rmi_method316.getTree());
                        break;
                    case 44:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format3rms_method_in_instruction4347);
                        insn_format3rms_method317 = this.insn_format3rms_method();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format3rms_method317.getTree());
                        break;
                    case 45:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format45cc_method_in_instruction4353);
                        insn_format45cc_method318 = this.insn_format45cc_method();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format45cc_method318.getTree());
                        break;
                    case 46:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format4rcc_method_in_instruction4359);
                        insn_format4rcc_method319 = this.insn_format4rcc_method();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format4rcc_method319.getTree());
                        break;
                    case 47:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_format51l_in_instruction4365);
                        insn_format51l320 = this.insn_format51l();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_format51l320.getTree());
                        break;
                    case 48:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_array_data_directive_in_instruction4371);
                        insn_array_data_directive321 = this.insn_array_data_directive();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_array_data_directive321.getTree());
                        break;
                    case 49:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_packed_switch_directive_in_instruction4377);
                        insn_packed_switch_directive322 = this.insn_packed_switch_directive();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_packed_switch_directive322.getTree());
                        break;
                    case 50:
                        root_0 = (CommonTree)this.adaptor.nil();
                        this.pushFollow(FOLLOW_insn_sparse_switch_directive_in_instruction4383);
                        insn_sparse_switch_directive323 = this.insn_sparse_switch_directive();
                        --this.state._fsp;
                        this.adaptor.addChild(root_0, insn_sparse_switch_directive323.getTree());
                }

                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var58) {
                RecognitionException re = var58;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format10t_return insn_format10t() throws RecognitionException {
        insn_format10t_return retval = new insn_format10t_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT10t324 = null;
        ParserRuleReturnScope label_ref325 = null;
        CommonTree INSTRUCTION_FORMAT10t324_tree = null;
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10t = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT10t");
        RewriteRuleSubtreeStream stream_label_ref = new RewriteRuleSubtreeStream(this.adaptor, "rule label_ref");

        try {
            try {
                INSTRUCTION_FORMAT10t324 = (Token)this.match(this.input, 44, FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t4403);
                stream_INSTRUCTION_FORMAT10t.add(INSTRUCTION_FORMAT10t324);
                this.pushFollow(FOLLOW_label_ref_in_insn_format10t4405);
                label_ref325 = this.label_ref();
                --this.state._fsp;
                stream_label_ref.add(label_ref325.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(144, retval.start, "I_STATEMENT_FORMAT10t"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT10t.nextNode());
                this.adaptor.addChild(root_1, stream_label_ref.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var13) {
                RecognitionException re = var13;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format10x_return insn_format10x() throws RecognitionException {
        insn_format10x_return retval = new insn_format10x_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT10x326 = null;
        CommonTree INSTRUCTION_FORMAT10x326_tree = null;
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT10x = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT10x");

        try {
            try {
                INSTRUCTION_FORMAT10x326 = (Token)this.match(this.input, 45, FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x4435);
                stream_INSTRUCTION_FORMAT10x.add(INSTRUCTION_FORMAT10x326);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(145, retval.start, "I_STATEMENT_FORMAT10x"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT10x.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var11) {
                RecognitionException re = var11;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format10x_odex_return insn_format10x_odex() throws RecognitionException {
        insn_format10x_odex_return retval = new insn_format10x_odex_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT10x_ODEX327 = null;
        CommonTree INSTRUCTION_FORMAT10x_ODEX327_tree = null;

        try {
            try {
                root_0 = (CommonTree)this.adaptor.nil();
                INSTRUCTION_FORMAT10x_ODEX327 = (Token)this.match(this.input, 46, FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_insn_format10x_odex4463);
                INSTRUCTION_FORMAT10x_ODEX327_tree = (CommonTree)this.adaptor.create(INSTRUCTION_FORMAT10x_ODEX327);
                this.adaptor.addChild(root_0, INSTRUCTION_FORMAT10x_ODEX327_tree);
                this.throwOdexedInstructionException(this.input, INSTRUCTION_FORMAT10x_ODEX327 != null ? INSTRUCTION_FORMAT10x_ODEX327.getText() : null);
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var9) {
                RecognitionException re = var9;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format11n_return insn_format11n() throws RecognitionException {
        insn_format11n_return retval = new insn_format11n_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT11n328 = null;
        Token REGISTER329 = null;
        Token COMMA330 = null;
        ParserRuleReturnScope integral_literal331 = null;
        CommonTree INSTRUCTION_FORMAT11n328_tree = null;
        CommonTree REGISTER329_tree = null;
        CommonTree COMMA330_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11n = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT11n");
        RewriteRuleSubtreeStream stream_integral_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule integral_literal");

        try {
            try {
                INSTRUCTION_FORMAT11n328 = (Token)this.match(this.input, 47, FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n4484);
                stream_INSTRUCTION_FORMAT11n.add(INSTRUCTION_FORMAT11n328);
                REGISTER329 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format11n4486);
                stream_REGISTER.add(REGISTER329);
                COMMA330 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format11n4488);
                stream_COMMA.add(COMMA330);
                this.pushFollow(FOLLOW_integral_literal_in_insn_format11n4490);
                integral_literal331 = this.integral_literal();
                --this.state._fsp;
                stream_integral_literal.add(integral_literal331.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(146, retval.start, "I_STATEMENT_FORMAT11n"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT11n.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_integral_literal.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format11x_return insn_format11x() throws RecognitionException {
        insn_format11x_return retval = new insn_format11x_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT11x332 = null;
        Token REGISTER333 = null;
        CommonTree INSTRUCTION_FORMAT11x332_tree = null;
        CommonTree REGISTER333_tree = null;
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT11x = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT11x");

        try {
            try {
                INSTRUCTION_FORMAT11x332 = (Token)this.match(this.input, 48, FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x4522);
                stream_INSTRUCTION_FORMAT11x.add(INSTRUCTION_FORMAT11x332);
                REGISTER333 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format11x4524);
                stream_REGISTER.add(REGISTER333);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(147, retval.start, "I_STATEMENT_FORMAT11x"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT11x.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var14) {
                RecognitionException re = var14;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format12x_return insn_format12x() throws RecognitionException {
        insn_format12x_return retval = new insn_format12x_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token REGISTER335 = null;
        Token COMMA336 = null;
        Token REGISTER337 = null;
        ParserRuleReturnScope instruction_format12x334 = null;
        CommonTree REGISTER335_tree = null;
        CommonTree COMMA336_tree = null;
        CommonTree REGISTER337_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleSubtreeStream stream_instruction_format12x = new RewriteRuleSubtreeStream(this.adaptor, "rule instruction_format12x");

        try {
            try {
                this.pushFollow(FOLLOW_instruction_format12x_in_insn_format12x4554);
                instruction_format12x334 = this.instruction_format12x();
                --this.state._fsp;
                stream_instruction_format12x.add(instruction_format12x334.getTree());
                REGISTER335 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format12x4556);
                stream_REGISTER.add(REGISTER335);
                COMMA336 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format12x4558);
                stream_COMMA.add(COMMA336);
                REGISTER337 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format12x4560);
                stream_REGISTER.add(REGISTER337);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(148, retval.start, "I_STATEMENT_FORMAT12x"), root_1);
                this.adaptor.addChild(root_1, stream_instruction_format12x.nextTree());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var18) {
                RecognitionException re = var18;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format20bc_return insn_format20bc() throws RecognitionException {
        insn_format20bc_return retval = new insn_format20bc_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT20bc338 = null;
        Token VERIFICATION_ERROR_TYPE339 = null;
        Token COMMA340 = null;
        ParserRuleReturnScope verification_error_reference341 = null;
        CommonTree INSTRUCTION_FORMAT20bc338_tree = null;
        CommonTree VERIFICATION_ERROR_TYPE339_tree = null;
        CommonTree COMMA340_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_VERIFICATION_ERROR_TYPE = new RewriteRuleTokenStream(this.adaptor, "token VERIFICATION_ERROR_TYPE");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT20bc = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT20bc");
        RewriteRuleSubtreeStream stream_verification_error_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule verification_error_reference");

        try {
            try {
                INSTRUCTION_FORMAT20bc338 = (Token)this.match(this.input, 51, FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc4592);
                stream_INSTRUCTION_FORMAT20bc.add(INSTRUCTION_FORMAT20bc338);
                VERIFICATION_ERROR_TYPE339 = (Token)this.match(this.input, 214, FOLLOW_VERIFICATION_ERROR_TYPE_in_insn_format20bc4594);
                stream_VERIFICATION_ERROR_TYPE.add(VERIFICATION_ERROR_TYPE339);
                COMMA340 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format20bc4596);
                stream_COMMA.add(COMMA340);
                this.pushFollow(FOLLOW_verification_error_reference_in_insn_format20bc4598);
                verification_error_reference341 = this.verification_error_reference();
                --this.state._fsp;
                stream_verification_error_reference.add(verification_error_reference341.getTree());
                if (!this.allowOdex || this.opcodes.getOpcodeByName(INSTRUCTION_FORMAT20bc338 != null ? INSTRUCTION_FORMAT20bc338.getText() : null) == null || this.apiLevel >= 14) {
                    this.throwOdexedInstructionException(this.input, INSTRUCTION_FORMAT20bc338 != null ? INSTRUCTION_FORMAT20bc338.getText() : null);
                }

                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(149, "I_STATEMENT_FORMAT20bc"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT20bc.nextNode());
                this.adaptor.addChild(root_1, stream_VERIFICATION_ERROR_TYPE.nextNode());
                this.adaptor.addChild(root_1, stream_verification_error_reference.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format20t_return insn_format20t() throws RecognitionException {
        insn_format20t_return retval = new insn_format20t_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT20t342 = null;
        ParserRuleReturnScope label_ref343 = null;
        CommonTree INSTRUCTION_FORMAT20t342_tree = null;
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT20t = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT20t");
        RewriteRuleSubtreeStream stream_label_ref = new RewriteRuleSubtreeStream(this.adaptor, "rule label_ref");

        try {
            try {
                INSTRUCTION_FORMAT20t342 = (Token)this.match(this.input, 52, FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t4635);
                stream_INSTRUCTION_FORMAT20t.add(INSTRUCTION_FORMAT20t342);
                this.pushFollow(FOLLOW_label_ref_in_insn_format20t4637);
                label_ref343 = this.label_ref();
                --this.state._fsp;
                stream_label_ref.add(label_ref343.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(150, retval.start, "I_STATEMENT_FORMAT20t"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT20t.nextNode());
                this.adaptor.addChild(root_1, stream_label_ref.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var13) {
                RecognitionException re = var13;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format21c_field_return insn_format21c_field() throws RecognitionException {
        insn_format21c_field_return retval = new insn_format21c_field_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT21c_FIELD344 = null;
        Token REGISTER345 = null;
        Token COMMA346 = null;
        ParserRuleReturnScope field_reference347 = null;
        CommonTree INSTRUCTION_FORMAT21c_FIELD344_tree = null;
        CommonTree REGISTER345_tree = null;
        CommonTree COMMA346_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21c_FIELD");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleSubtreeStream stream_field_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule field_reference");

        try {
            try {
                INSTRUCTION_FORMAT21c_FIELD344 = (Token)this.match(this.input, 53, FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_insn_format21c_field4667);
                stream_INSTRUCTION_FORMAT21c_FIELD.add(INSTRUCTION_FORMAT21c_FIELD344);
                REGISTER345 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format21c_field4669);
                stream_REGISTER.add(REGISTER345);
                COMMA346 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format21c_field4671);
                stream_COMMA.add(COMMA346);
                this.pushFollow(FOLLOW_field_reference_in_insn_format21c_field4673);
                field_reference347 = this.field_reference();
                --this.state._fsp;
                stream_field_reference.add(field_reference347.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(151, retval.start, "I_STATEMENT_FORMAT21c_FIELD"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_FIELD.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_field_reference.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format21c_field_odex_return insn_format21c_field_odex() throws RecognitionException {
        insn_format21c_field_odex_return retval = new insn_format21c_field_odex_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT21c_FIELD_ODEX348 = null;
        Token REGISTER349 = null;
        Token COMMA350 = null;
        ParserRuleReturnScope field_reference351 = null;
        CommonTree INSTRUCTION_FORMAT21c_FIELD_ODEX348_tree = null;
        CommonTree REGISTER349_tree = null;
        CommonTree COMMA350_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_FIELD_ODEX = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21c_FIELD_ODEX");
        RewriteRuleSubtreeStream stream_field_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule field_reference");

        try {
            try {
                INSTRUCTION_FORMAT21c_FIELD_ODEX348 = (Token)this.match(this.input, 54, FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_insn_format21c_field_odex4705);
                stream_INSTRUCTION_FORMAT21c_FIELD_ODEX.add(INSTRUCTION_FORMAT21c_FIELD_ODEX348);
                REGISTER349 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format21c_field_odex4707);
                stream_REGISTER.add(REGISTER349);
                COMMA350 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format21c_field_odex4709);
                stream_COMMA.add(COMMA350);
                this.pushFollow(FOLLOW_field_reference_in_insn_format21c_field_odex4711);
                field_reference351 = this.field_reference();
                --this.state._fsp;
                stream_field_reference.add(field_reference351.getTree());
                if (!this.allowOdex || this.opcodes.getOpcodeByName(INSTRUCTION_FORMAT21c_FIELD_ODEX348 != null ? INSTRUCTION_FORMAT21c_FIELD_ODEX348.getText() : null) == null || this.apiLevel >= 14) {
                    this.throwOdexedInstructionException(this.input, INSTRUCTION_FORMAT21c_FIELD_ODEX348 != null ? INSTRUCTION_FORMAT21c_FIELD_ODEX348.getText() : null);
                }

                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(151, retval.start, "I_STATEMENT_FORMAT21c_FIELD"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_FIELD_ODEX.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_field_reference.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format21c_method_handle_return insn_format21c_method_handle() throws RecognitionException {
        insn_format21c_method_handle_return retval = new insn_format21c_method_handle_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT21c_METHOD_HANDLE352 = null;
        Token REGISTER353 = null;
        Token COMMA354 = null;
        ParserRuleReturnScope method_handle_reference355 = null;
        CommonTree INSTRUCTION_FORMAT21c_METHOD_HANDLE352_tree = null;
        CommonTree REGISTER353_tree = null;
        CommonTree COMMA354_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_METHOD_HANDLE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21c_METHOD_HANDLE");
        RewriteRuleSubtreeStream stream_method_handle_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule method_handle_reference");

        try {
            try {
                INSTRUCTION_FORMAT21c_METHOD_HANDLE352 = (Token)this.match(this.input, 55, FOLLOW_INSTRUCTION_FORMAT21c_METHOD_HANDLE_in_insn_format21c_method_handle4749);
                stream_INSTRUCTION_FORMAT21c_METHOD_HANDLE.add(INSTRUCTION_FORMAT21c_METHOD_HANDLE352);
                REGISTER353 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format21c_method_handle4751);
                stream_REGISTER.add(REGISTER353);
                COMMA354 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format21c_method_handle4753);
                stream_COMMA.add(COMMA354);
                this.pushFollow(FOLLOW_method_handle_reference_in_insn_format21c_method_handle4755);
                method_handle_reference355 = this.method_handle_reference();
                --this.state._fsp;
                stream_method_handle_reference.add(method_handle_reference355.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(152, retval.start, "I_STATEMENT_FORMAT21c_METHOD_HANDLE"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_METHOD_HANDLE.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_method_handle_reference.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format21c_method_type_return insn_format21c_method_type() throws RecognitionException {
        insn_format21c_method_type_return retval = new insn_format21c_method_type_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT21c_METHOD_TYPE356 = null;
        Token REGISTER357 = null;
        Token COMMA358 = null;
        ParserRuleReturnScope method_prototype359 = null;
        CommonTree INSTRUCTION_FORMAT21c_METHOD_TYPE356_tree = null;
        CommonTree REGISTER357_tree = null;
        CommonTree COMMA358_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_METHOD_TYPE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21c_METHOD_TYPE");
        RewriteRuleSubtreeStream stream_method_prototype = new RewriteRuleSubtreeStream(this.adaptor, "rule method_prototype");

        try {
            try {
                INSTRUCTION_FORMAT21c_METHOD_TYPE356 = (Token)this.match(this.input, 56, FOLLOW_INSTRUCTION_FORMAT21c_METHOD_TYPE_in_insn_format21c_method_type4801);
                stream_INSTRUCTION_FORMAT21c_METHOD_TYPE.add(INSTRUCTION_FORMAT21c_METHOD_TYPE356);
                REGISTER357 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format21c_method_type4803);
                stream_REGISTER.add(REGISTER357);
                COMMA358 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format21c_method_type4805);
                stream_COMMA.add(COMMA358);
                this.pushFollow(FOLLOW_method_prototype_in_insn_format21c_method_type4807);
                method_prototype359 = this.method_prototype();
                --this.state._fsp;
                stream_method_prototype.add(method_prototype359.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(153, retval.start, "I_STATEMENT_FORMAT21c_METHOD_TYPE"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_METHOD_TYPE.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_method_prototype.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format21c_string_return insn_format21c_string() throws RecognitionException {
        insn_format21c_string_return retval = new insn_format21c_string_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT21c_STRING360 = null;
        Token REGISTER361 = null;
        Token COMMA362 = null;
        Token STRING_LITERAL363 = null;
        CommonTree INSTRUCTION_FORMAT21c_STRING360_tree = null;
        CommonTree REGISTER361_tree = null;
        CommonTree COMMA362_tree = null;
        CommonTree STRING_LITERAL363_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_STRING_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token STRING_LITERAL");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_STRING = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21c_STRING");

        try {
            try {
                INSTRUCTION_FORMAT21c_STRING360 = (Token)this.match(this.input, 57, FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string4851);
                stream_INSTRUCTION_FORMAT21c_STRING.add(INSTRUCTION_FORMAT21c_STRING360);
                REGISTER361 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format21c_string4853);
                stream_REGISTER.add(REGISTER361);
                COMMA362 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format21c_string4855);
                stream_COMMA.add(COMMA362);
                STRING_LITERAL363 = (Token)this.match(this.input, 211, FOLLOW_STRING_LITERAL_in_insn_format21c_string4857);
                stream_STRING_LITERAL.add(STRING_LITERAL363);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(154, retval.start, "I_STATEMENT_FORMAT21c_STRING"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_STRING.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var20) {
                RecognitionException re = var20;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format21c_type_return insn_format21c_type() throws RecognitionException {
        insn_format21c_type_return retval = new insn_format21c_type_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT21c_TYPE364 = null;
        Token REGISTER365 = null;
        Token COMMA366 = null;
        ParserRuleReturnScope nonvoid_type_descriptor367 = null;
        CommonTree INSTRUCTION_FORMAT21c_TYPE364_tree = null;
        CommonTree REGISTER365_tree = null;
        CommonTree COMMA366_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21c_TYPE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21c_TYPE");
        RewriteRuleSubtreeStream stream_nonvoid_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule nonvoid_type_descriptor");

        try {
            try {
                INSTRUCTION_FORMAT21c_TYPE364 = (Token)this.match(this.input, 58, FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type4889);
                stream_INSTRUCTION_FORMAT21c_TYPE.add(INSTRUCTION_FORMAT21c_TYPE364);
                REGISTER365 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format21c_type4891);
                stream_REGISTER.add(REGISTER365);
                COMMA366 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format21c_type4893);
                stream_COMMA.add(COMMA366);
                this.pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type4895);
                nonvoid_type_descriptor367 = this.nonvoid_type_descriptor();
                --this.state._fsp;
                stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor367.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(155, retval.start, "I_STATEMENT_FORMAT21c"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21c_TYPE.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format21ih_return insn_format21ih() throws RecognitionException {
        insn_format21ih_return retval = new insn_format21ih_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT21ih368 = null;
        Token REGISTER369 = null;
        Token COMMA370 = null;
        ParserRuleReturnScope fixed_32bit_literal371 = null;
        CommonTree INSTRUCTION_FORMAT21ih368_tree = null;
        CommonTree REGISTER369_tree = null;
        CommonTree COMMA370_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21ih = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21ih");
        RewriteRuleSubtreeStream stream_fixed_32bit_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule fixed_32bit_literal");

        try {
            try {
                INSTRUCTION_FORMAT21ih368 = (Token)this.match(this.input, 59, FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih4927);
                stream_INSTRUCTION_FORMAT21ih.add(INSTRUCTION_FORMAT21ih368);
                REGISTER369 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format21ih4929);
                stream_REGISTER.add(REGISTER369);
                COMMA370 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format21ih4931);
                stream_COMMA.add(COMMA370);
                this.pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format21ih4933);
                fixed_32bit_literal371 = this.fixed_32bit_literal();
                --this.state._fsp;
                stream_fixed_32bit_literal.add(fixed_32bit_literal371.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(156, retval.start, "I_STATEMENT_FORMAT21ih"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21ih.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format21lh_return insn_format21lh() throws RecognitionException {
        insn_format21lh_return retval = new insn_format21lh_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT21lh372 = null;
        Token REGISTER373 = null;
        Token COMMA374 = null;
        ParserRuleReturnScope fixed_32bit_literal375 = null;
        CommonTree INSTRUCTION_FORMAT21lh372_tree = null;
        CommonTree REGISTER373_tree = null;
        CommonTree COMMA374_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21lh = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21lh");
        RewriteRuleSubtreeStream stream_fixed_32bit_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule fixed_32bit_literal");

        try {
            try {
                INSTRUCTION_FORMAT21lh372 = (Token)this.match(this.input, 60, FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh4965);
                stream_INSTRUCTION_FORMAT21lh.add(INSTRUCTION_FORMAT21lh372);
                REGISTER373 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format21lh4967);
                stream_REGISTER.add(REGISTER373);
                COMMA374 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format21lh4969);
                stream_COMMA.add(COMMA374);
                this.pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format21lh4971);
                fixed_32bit_literal375 = this.fixed_32bit_literal();
                --this.state._fsp;
                stream_fixed_32bit_literal.add(fixed_32bit_literal375.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(157, retval.start, "I_STATEMENT_FORMAT21lh"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21lh.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format21s_return insn_format21s() throws RecognitionException {
        insn_format21s_return retval = new insn_format21s_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT21s376 = null;
        Token REGISTER377 = null;
        Token COMMA378 = null;
        ParserRuleReturnScope integral_literal379 = null;
        CommonTree INSTRUCTION_FORMAT21s376_tree = null;
        CommonTree REGISTER377_tree = null;
        CommonTree COMMA378_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21s = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21s");
        RewriteRuleSubtreeStream stream_integral_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule integral_literal");

        try {
            try {
                INSTRUCTION_FORMAT21s376 = (Token)this.match(this.input, 61, FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s5003);
                stream_INSTRUCTION_FORMAT21s.add(INSTRUCTION_FORMAT21s376);
                REGISTER377 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format21s5005);
                stream_REGISTER.add(REGISTER377);
                COMMA378 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format21s5007);
                stream_COMMA.add(COMMA378);
                this.pushFollow(FOLLOW_integral_literal_in_insn_format21s5009);
                integral_literal379 = this.integral_literal();
                --this.state._fsp;
                stream_integral_literal.add(integral_literal379.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(158, retval.start, "I_STATEMENT_FORMAT21s"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21s.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_integral_literal.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format21t_return insn_format21t() throws RecognitionException {
        insn_format21t_return retval = new insn_format21t_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT21t380 = null;
        Token REGISTER381 = null;
        Token COMMA382 = null;
        ParserRuleReturnScope label_ref383 = null;
        CommonTree INSTRUCTION_FORMAT21t380_tree = null;
        CommonTree REGISTER381_tree = null;
        CommonTree COMMA382_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT21t = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT21t");
        RewriteRuleSubtreeStream stream_label_ref = new RewriteRuleSubtreeStream(this.adaptor, "rule label_ref");

        try {
            try {
                INSTRUCTION_FORMAT21t380 = (Token)this.match(this.input, 62, FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t5041);
                stream_INSTRUCTION_FORMAT21t.add(INSTRUCTION_FORMAT21t380);
                REGISTER381 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format21t5043);
                stream_REGISTER.add(REGISTER381);
                COMMA382 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format21t5045);
                stream_COMMA.add(COMMA382);
                this.pushFollow(FOLLOW_label_ref_in_insn_format21t5047);
                label_ref383 = this.label_ref();
                --this.state._fsp;
                stream_label_ref.add(label_ref383.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(159, retval.start, "I_STATEMENT_FORMAT21t"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT21t.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_label_ref.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format22b_return insn_format22b() throws RecognitionException {
        insn_format22b_return retval = new insn_format22b_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT22b384 = null;
        Token REGISTER385 = null;
        Token COMMA386 = null;
        Token REGISTER387 = null;
        Token COMMA388 = null;
        ParserRuleReturnScope integral_literal389 = null;
        CommonTree INSTRUCTION_FORMAT22b384_tree = null;
        CommonTree REGISTER385_tree = null;
        CommonTree COMMA386_tree = null;
        CommonTree REGISTER387_tree = null;
        CommonTree COMMA388_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22b = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22b");
        RewriteRuleSubtreeStream stream_integral_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule integral_literal");

        try {
            try {
                INSTRUCTION_FORMAT22b384 = (Token)this.match(this.input, 63, FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b5079);
                stream_INSTRUCTION_FORMAT22b.add(INSTRUCTION_FORMAT22b384);
                REGISTER385 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22b5081);
                stream_REGISTER.add(REGISTER385);
                COMMA386 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22b5083);
                stream_COMMA.add(COMMA386);
                REGISTER387 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22b5085);
                stream_REGISTER.add(REGISTER387);
                COMMA388 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22b5087);
                stream_COMMA.add(COMMA388);
                this.pushFollow(FOLLOW_integral_literal_in_insn_format22b5089);
                integral_literal389 = this.integral_literal();
                --this.state._fsp;
                stream_integral_literal.add(integral_literal389.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(160, retval.start, "I_STATEMENT_FORMAT22b"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22b.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_integral_literal.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var23) {
                RecognitionException re = var23;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format22c_field_return insn_format22c_field() throws RecognitionException {
        insn_format22c_field_return retval = new insn_format22c_field_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT22c_FIELD390 = null;
        Token REGISTER391 = null;
        Token COMMA392 = null;
        Token REGISTER393 = null;
        Token COMMA394 = null;
        ParserRuleReturnScope field_reference395 = null;
        CommonTree INSTRUCTION_FORMAT22c_FIELD390_tree = null;
        CommonTree REGISTER391_tree = null;
        CommonTree COMMA392_tree = null;
        CommonTree REGISTER393_tree = null;
        CommonTree COMMA394_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22c_FIELD");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleSubtreeStream stream_field_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule field_reference");

        try {
            try {
                INSTRUCTION_FORMAT22c_FIELD390 = (Token)this.match(this.input, 64, FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_insn_format22c_field5123);
                stream_INSTRUCTION_FORMAT22c_FIELD.add(INSTRUCTION_FORMAT22c_FIELD390);
                REGISTER391 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22c_field5125);
                stream_REGISTER.add(REGISTER391);
                COMMA392 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22c_field5127);
                stream_COMMA.add(COMMA392);
                REGISTER393 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22c_field5129);
                stream_REGISTER.add(REGISTER393);
                COMMA394 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22c_field5131);
                stream_COMMA.add(COMMA394);
                this.pushFollow(FOLLOW_field_reference_in_insn_format22c_field5133);
                field_reference395 = this.field_reference();
                --this.state._fsp;
                stream_field_reference.add(field_reference395.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(161, retval.start, "I_STATEMENT_FORMAT22c_FIELD"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_FIELD.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_field_reference.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var23) {
                RecognitionException re = var23;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format22c_field_odex_return insn_format22c_field_odex() throws RecognitionException {
        insn_format22c_field_odex_return retval = new insn_format22c_field_odex_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT22c_FIELD_ODEX396 = null;
        Token REGISTER397 = null;
        Token COMMA398 = null;
        Token REGISTER399 = null;
        Token COMMA400 = null;
        ParserRuleReturnScope field_reference401 = null;
        CommonTree INSTRUCTION_FORMAT22c_FIELD_ODEX396_tree = null;
        CommonTree REGISTER397_tree = null;
        CommonTree COMMA398_tree = null;
        CommonTree REGISTER399_tree = null;
        CommonTree COMMA400_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_FIELD_ODEX = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22c_FIELD_ODEX");
        RewriteRuleSubtreeStream stream_field_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule field_reference");

        try {
            try {
                INSTRUCTION_FORMAT22c_FIELD_ODEX396 = (Token)this.match(this.input, 65, FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_insn_format22c_field_odex5167);
                stream_INSTRUCTION_FORMAT22c_FIELD_ODEX.add(INSTRUCTION_FORMAT22c_FIELD_ODEX396);
                REGISTER397 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22c_field_odex5169);
                stream_REGISTER.add(REGISTER397);
                COMMA398 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22c_field_odex5171);
                stream_COMMA.add(COMMA398);
                REGISTER399 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22c_field_odex5173);
                stream_REGISTER.add(REGISTER399);
                COMMA400 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22c_field_odex5175);
                stream_COMMA.add(COMMA400);
                this.pushFollow(FOLLOW_field_reference_in_insn_format22c_field_odex5177);
                field_reference401 = this.field_reference();
                --this.state._fsp;
                stream_field_reference.add(field_reference401.getTree());
                if (!this.allowOdex || this.opcodes.getOpcodeByName(INSTRUCTION_FORMAT22c_FIELD_ODEX396 != null ? INSTRUCTION_FORMAT22c_FIELD_ODEX396.getText() : null) == null || this.apiLevel >= 14) {
                    this.throwOdexedInstructionException(this.input, INSTRUCTION_FORMAT22c_FIELD_ODEX396 != null ? INSTRUCTION_FORMAT22c_FIELD_ODEX396.getText() : null);
                }

                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(161, retval.start, "I_STATEMENT_FORMAT22c_FIELD"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_FIELD_ODEX.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_field_reference.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var23) {
                RecognitionException re = var23;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format22c_type_return insn_format22c_type() throws RecognitionException {
        insn_format22c_type_return retval = new insn_format22c_type_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT22c_TYPE402 = null;
        Token REGISTER403 = null;
        Token COMMA404 = null;
        Token REGISTER405 = null;
        Token COMMA406 = null;
        ParserRuleReturnScope nonvoid_type_descriptor407 = null;
        CommonTree INSTRUCTION_FORMAT22c_TYPE402_tree = null;
        CommonTree REGISTER403_tree = null;
        CommonTree COMMA404_tree = null;
        CommonTree REGISTER405_tree = null;
        CommonTree COMMA406_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22c_TYPE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22c_TYPE");
        RewriteRuleSubtreeStream stream_nonvoid_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule nonvoid_type_descriptor");

        try {
            try {
                INSTRUCTION_FORMAT22c_TYPE402 = (Token)this.match(this.input, 66, FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type5217);
                stream_INSTRUCTION_FORMAT22c_TYPE.add(INSTRUCTION_FORMAT22c_TYPE402);
                REGISTER403 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22c_type5219);
                stream_REGISTER.add(REGISTER403);
                COMMA404 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22c_type5221);
                stream_COMMA.add(COMMA404);
                REGISTER405 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22c_type5223);
                stream_REGISTER.add(REGISTER405);
                COMMA406 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22c_type5225);
                stream_COMMA.add(COMMA406);
                this.pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type5227);
                nonvoid_type_descriptor407 = this.nonvoid_type_descriptor();
                --this.state._fsp;
                stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor407.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(162, retval.start, "I_STATEMENT_FORMAT22c_TYPE"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22c_TYPE.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var23) {
                RecognitionException re = var23;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format22cs_field_return insn_format22cs_field() throws RecognitionException {
        insn_format22cs_field_return retval = new insn_format22cs_field_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT22cs_FIELD408 = null;
        Token REGISTER409 = null;
        Token COMMA410 = null;
        Token REGISTER411 = null;
        Token COMMA412 = null;
        Token FIELD_OFFSET413 = null;
        CommonTree INSTRUCTION_FORMAT22cs_FIELD408_tree = null;
        CommonTree REGISTER409_tree = null;
        CommonTree COMMA410_tree = null;
        CommonTree REGISTER411_tree = null;
        CommonTree COMMA412_tree = null;
        CommonTree FIELD_OFFSET413_tree = null;

        try {
            try {
                root_0 = (CommonTree)this.adaptor.nil();
                INSTRUCTION_FORMAT22cs_FIELD408 = (Token)this.match(this.input, 67, FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_insn_format22cs_field5261);
                INSTRUCTION_FORMAT22cs_FIELD408_tree = (CommonTree)this.adaptor.create(INSTRUCTION_FORMAT22cs_FIELD408);
                this.adaptor.addChild(root_0, INSTRUCTION_FORMAT22cs_FIELD408_tree);
                REGISTER409 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22cs_field5263);
                REGISTER409_tree = (CommonTree)this.adaptor.create(REGISTER409);
                this.adaptor.addChild(root_0, REGISTER409_tree);
                COMMA410 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22cs_field5265);
                COMMA410_tree = (CommonTree)this.adaptor.create(COMMA410);
                this.adaptor.addChild(root_0, COMMA410_tree);
                REGISTER411 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22cs_field5267);
                REGISTER411_tree = (CommonTree)this.adaptor.create(REGISTER411);
                this.adaptor.addChild(root_0, REGISTER411_tree);
                COMMA412 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22cs_field5269);
                COMMA412_tree = (CommonTree)this.adaptor.create(COMMA412);
                this.adaptor.addChild(root_0, COMMA412_tree);
                FIELD_OFFSET413 = (Token)this.match(this.input, 38, FOLLOW_FIELD_OFFSET_in_insn_format22cs_field5271);
                FIELD_OFFSET413_tree = (CommonTree)this.adaptor.create(FIELD_OFFSET413);
                this.adaptor.addChild(root_0, FIELD_OFFSET413_tree);
                this.throwOdexedInstructionException(this.input, INSTRUCTION_FORMAT22cs_FIELD408 != null ? INSTRUCTION_FORMAT22cs_FIELD408.getText() : null);
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format22s_return insn_format22s() throws RecognitionException {
        insn_format22s_return retval = new insn_format22s_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token REGISTER415 = null;
        Token COMMA416 = null;
        Token REGISTER417 = null;
        Token COMMA418 = null;
        ParserRuleReturnScope instruction_format22s414 = null;
        ParserRuleReturnScope integral_literal419 = null;
        CommonTree REGISTER415_tree = null;
        CommonTree COMMA416_tree = null;
        CommonTree REGISTER417_tree = null;
        CommonTree COMMA418_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleSubtreeStream stream_instruction_format22s = new RewriteRuleSubtreeStream(this.adaptor, "rule instruction_format22s");
        RewriteRuleSubtreeStream stream_integral_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule integral_literal");

        try {
            try {
                this.pushFollow(FOLLOW_instruction_format22s_in_insn_format22s5292);
                instruction_format22s414 = this.instruction_format22s();
                --this.state._fsp;
                stream_instruction_format22s.add(instruction_format22s414.getTree());
                REGISTER415 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22s5294);
                stream_REGISTER.add(REGISTER415);
                COMMA416 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22s5296);
                stream_COMMA.add(COMMA416);
                REGISTER417 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22s5298);
                stream_REGISTER.add(REGISTER417);
                COMMA418 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22s5300);
                stream_COMMA.add(COMMA418);
                this.pushFollow(FOLLOW_integral_literal_in_insn_format22s5302);
                integral_literal419 = this.integral_literal();
                --this.state._fsp;
                stream_integral_literal.add(integral_literal419.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(163, retval.start, "I_STATEMENT_FORMAT22s"), root_1);
                this.adaptor.addChild(root_1, stream_instruction_format22s.nextTree());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_integral_literal.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var22) {
                RecognitionException re = var22;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format22t_return insn_format22t() throws RecognitionException {
        insn_format22t_return retval = new insn_format22t_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT22t420 = null;
        Token REGISTER421 = null;
        Token COMMA422 = null;
        Token REGISTER423 = null;
        Token COMMA424 = null;
        ParserRuleReturnScope label_ref425 = null;
        CommonTree INSTRUCTION_FORMAT22t420_tree = null;
        CommonTree REGISTER421_tree = null;
        CommonTree COMMA422_tree = null;
        CommonTree REGISTER423_tree = null;
        CommonTree COMMA424_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22t = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22t");
        RewriteRuleSubtreeStream stream_label_ref = new RewriteRuleSubtreeStream(this.adaptor, "rule label_ref");

        try {
            try {
                INSTRUCTION_FORMAT22t420 = (Token)this.match(this.input, 70, FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t5336);
                stream_INSTRUCTION_FORMAT22t.add(INSTRUCTION_FORMAT22t420);
                REGISTER421 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22t5338);
                stream_REGISTER.add(REGISTER421);
                COMMA422 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22t5340);
                stream_COMMA.add(COMMA422);
                REGISTER423 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22t5342);
                stream_REGISTER.add(REGISTER423);
                COMMA424 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22t5344);
                stream_COMMA.add(COMMA424);
                this.pushFollow(FOLLOW_label_ref_in_insn_format22t5346);
                label_ref425 = this.label_ref();
                --this.state._fsp;
                stream_label_ref.add(label_ref425.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(164, retval.start, "I_STATEMENT_FFORMAT22t"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22t.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_label_ref.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var23) {
                RecognitionException re = var23;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format22x_return insn_format22x() throws RecognitionException {
        insn_format22x_return retval = new insn_format22x_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT22x426 = null;
        Token REGISTER427 = null;
        Token COMMA428 = null;
        Token REGISTER429 = null;
        CommonTree INSTRUCTION_FORMAT22x426_tree = null;
        CommonTree REGISTER427_tree = null;
        CommonTree COMMA428_tree = null;
        CommonTree REGISTER429_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT22x = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT22x");

        try {
            try {
                INSTRUCTION_FORMAT22x426 = (Token)this.match(this.input, 71, FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x5380);
                stream_INSTRUCTION_FORMAT22x.add(INSTRUCTION_FORMAT22x426);
                REGISTER427 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22x5382);
                stream_REGISTER.add(REGISTER427);
                COMMA428 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format22x5384);
                stream_COMMA.add(COMMA428);
                REGISTER429 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format22x5386);
                stream_REGISTER.add(REGISTER429);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(165, retval.start, "I_STATEMENT_FORMAT22x"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT22x.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format23x_return insn_format23x() throws RecognitionException {
        insn_format23x_return retval = new insn_format23x_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT23x430 = null;
        Token REGISTER431 = null;
        Token COMMA432 = null;
        Token REGISTER433 = null;
        Token COMMA434 = null;
        Token REGISTER435 = null;
        CommonTree INSTRUCTION_FORMAT23x430_tree = null;
        CommonTree REGISTER431_tree = null;
        CommonTree COMMA432_tree = null;
        CommonTree REGISTER433_tree = null;
        CommonTree COMMA434_tree = null;
        CommonTree REGISTER435_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT23x = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT23x");

        try {
            try {
                INSTRUCTION_FORMAT23x430 = (Token)this.match(this.input, 72, FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x5418);
                stream_INSTRUCTION_FORMAT23x.add(INSTRUCTION_FORMAT23x430);
                REGISTER431 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format23x5420);
                stream_REGISTER.add(REGISTER431);
                COMMA432 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format23x5422);
                stream_COMMA.add(COMMA432);
                REGISTER433 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format23x5424);
                stream_REGISTER.add(REGISTER433);
                COMMA434 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format23x5426);
                stream_COMMA.add(COMMA434);
                REGISTER435 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format23x5428);
                stream_REGISTER.add(REGISTER435);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(166, retval.start, "I_STATEMENT_FORMAT23x"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT23x.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var23) {
                RecognitionException re = var23;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format30t_return insn_format30t() throws RecognitionException {
        insn_format30t_return retval = new insn_format30t_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT30t436 = null;
        ParserRuleReturnScope label_ref437 = null;
        CommonTree INSTRUCTION_FORMAT30t436_tree = null;
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT30t = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT30t");
        RewriteRuleSubtreeStream stream_label_ref = new RewriteRuleSubtreeStream(this.adaptor, "rule label_ref");

        try {
            try {
                INSTRUCTION_FORMAT30t436 = (Token)this.match(this.input, 73, FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t5462);
                stream_INSTRUCTION_FORMAT30t.add(INSTRUCTION_FORMAT30t436);
                this.pushFollow(FOLLOW_label_ref_in_insn_format30t5464);
                label_ref437 = this.label_ref();
                --this.state._fsp;
                stream_label_ref.add(label_ref437.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(167, retval.start, "I_STATEMENT_FORMAT30t"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT30t.nextNode());
                this.adaptor.addChild(root_1, stream_label_ref.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var13) {
                RecognitionException re = var13;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format31c_return insn_format31c() throws RecognitionException {
        insn_format31c_return retval = new insn_format31c_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT31c438 = null;
        Token REGISTER439 = null;
        Token COMMA440 = null;
        Token STRING_LITERAL441 = null;
        CommonTree INSTRUCTION_FORMAT31c438_tree = null;
        CommonTree REGISTER439_tree = null;
        CommonTree COMMA440_tree = null;
        CommonTree STRING_LITERAL441_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31c = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT31c");
        RewriteRuleTokenStream stream_STRING_LITERAL = new RewriteRuleTokenStream(this.adaptor, "token STRING_LITERAL");

        try {
            try {
                INSTRUCTION_FORMAT31c438 = (Token)this.match(this.input, 74, FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c5494);
                stream_INSTRUCTION_FORMAT31c.add(INSTRUCTION_FORMAT31c438);
                REGISTER439 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format31c5496);
                stream_REGISTER.add(REGISTER439);
                COMMA440 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format31c5498);
                stream_COMMA.add(COMMA440);
                STRING_LITERAL441 = (Token)this.match(this.input, 211, FOLLOW_STRING_LITERAL_in_insn_format31c5500);
                stream_STRING_LITERAL.add(STRING_LITERAL441);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(168, retval.start, "I_STATEMENT_FORMAT31c"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT31c.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_STRING_LITERAL.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var20) {
                RecognitionException re = var20;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format31i_return insn_format31i() throws RecognitionException {
        insn_format31i_return retval = new insn_format31i_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token REGISTER443 = null;
        Token COMMA444 = null;
        ParserRuleReturnScope instruction_format31i442 = null;
        ParserRuleReturnScope fixed_32bit_literal445 = null;
        CommonTree REGISTER443_tree = null;
        CommonTree COMMA444_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleSubtreeStream stream_fixed_32bit_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule fixed_32bit_literal");
        RewriteRuleSubtreeStream stream_instruction_format31i = new RewriteRuleSubtreeStream(this.adaptor, "rule instruction_format31i");

        try {
            try {
                this.pushFollow(FOLLOW_instruction_format31i_in_insn_format31i5531);
                instruction_format31i442 = this.instruction_format31i();
                --this.state._fsp;
                stream_instruction_format31i.add(instruction_format31i442.getTree());
                REGISTER443 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format31i5533);
                stream_REGISTER.add(REGISTER443);
                COMMA444 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format31i5535);
                stream_COMMA.add(COMMA444);
                this.pushFollow(FOLLOW_fixed_32bit_literal_in_insn_format31i5537);
                fixed_32bit_literal445 = this.fixed_32bit_literal();
                --this.state._fsp;
                stream_fixed_32bit_literal.add(fixed_32bit_literal445.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(169, retval.start, "I_STATEMENT_FORMAT31i"), root_1);
                this.adaptor.addChild(root_1, stream_instruction_format31i.nextTree());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_fixed_32bit_literal.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var18) {
                RecognitionException re = var18;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format31t_return insn_format31t() throws RecognitionException {
        insn_format31t_return retval = new insn_format31t_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT31t446 = null;
        Token REGISTER447 = null;
        Token COMMA448 = null;
        ParserRuleReturnScope label_ref449 = null;
        CommonTree INSTRUCTION_FORMAT31t446_tree = null;
        CommonTree REGISTER447_tree = null;
        CommonTree COMMA448_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT31t = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT31t");
        RewriteRuleSubtreeStream stream_label_ref = new RewriteRuleSubtreeStream(this.adaptor, "rule label_ref");

        try {
            try {
                INSTRUCTION_FORMAT31t446 = (Token)this.match(this.input, 77, FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t5569);
                stream_INSTRUCTION_FORMAT31t.add(INSTRUCTION_FORMAT31t446);
                REGISTER447 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format31t5571);
                stream_REGISTER.add(REGISTER447);
                COMMA448 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format31t5573);
                stream_COMMA.add(COMMA448);
                this.pushFollow(FOLLOW_label_ref_in_insn_format31t5575);
                label_ref449 = this.label_ref();
                --this.state._fsp;
                stream_label_ref.add(label_ref449.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(170, retval.start, "I_STATEMENT_FORMAT31t"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT31t.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_label_ref.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format32x_return insn_format32x() throws RecognitionException {
        insn_format32x_return retval = new insn_format32x_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT32x450 = null;
        Token REGISTER451 = null;
        Token COMMA452 = null;
        Token REGISTER453 = null;
        CommonTree INSTRUCTION_FORMAT32x450_tree = null;
        CommonTree REGISTER451_tree = null;
        CommonTree COMMA452_tree = null;
        CommonTree REGISTER453_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT32x = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT32x");

        try {
            try {
                INSTRUCTION_FORMAT32x450 = (Token)this.match(this.input, 78, FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x5607);
                stream_INSTRUCTION_FORMAT32x.add(INSTRUCTION_FORMAT32x450);
                REGISTER451 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format32x5609);
                stream_REGISTER.add(REGISTER451);
                COMMA452 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format32x5611);
                stream_COMMA.add(COMMA452);
                REGISTER453 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format32x5613);
                stream_REGISTER.add(REGISTER453);
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(171, retval.start, "I_STATEMENT_FORMAT32x"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT32x.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format35c_call_site_return insn_format35c_call_site() throws RecognitionException {
        insn_format35c_call_site_return retval = new insn_format35c_call_site_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT35c_CALL_SITE454 = null;
        Token OPEN_BRACE455 = null;
        Token CLOSE_BRACE457 = null;
        Token COMMA458 = null;
        ParserRuleReturnScope register_list456 = null;
        ParserRuleReturnScope call_site_reference459 = null;
        CommonTree INSTRUCTION_FORMAT35c_CALL_SITE454_tree = null;
        CommonTree OPEN_BRACE455_tree = null;
        CommonTree CLOSE_BRACE457_tree = null;
        CommonTree COMMA458_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_OPEN_BRACE = new RewriteRuleTokenStream(this.adaptor, "token OPEN_BRACE");
        RewriteRuleTokenStream stream_CLOSE_BRACE = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_BRACE");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_CALL_SITE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT35c_CALL_SITE");
        RewriteRuleSubtreeStream stream_register_list = new RewriteRuleSubtreeStream(this.adaptor, "rule register_list");
        RewriteRuleSubtreeStream stream_call_site_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule call_site_reference");

        try {
            try {
                INSTRUCTION_FORMAT35c_CALL_SITE454 = (Token)this.match(this.input, 79, FOLLOW_INSTRUCTION_FORMAT35c_CALL_SITE_in_insn_format35c_call_site5650);
                stream_INSTRUCTION_FORMAT35c_CALL_SITE.add(INSTRUCTION_FORMAT35c_CALL_SITE454);
                OPEN_BRACE455 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format35c_call_site5652);
                stream_OPEN_BRACE.add(OPEN_BRACE455);
                this.pushFollow(FOLLOW_register_list_in_insn_format35c_call_site5654);
                register_list456 = this.register_list();
                --this.state._fsp;
                stream_register_list.add(register_list456.getTree());
                CLOSE_BRACE457 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format35c_call_site5656);
                stream_CLOSE_BRACE.add(CLOSE_BRACE457);
                COMMA458 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format35c_call_site5658);
                stream_COMMA.add(COMMA458);
                this.pushFollow(FOLLOW_call_site_reference_in_insn_format35c_call_site5660);
                call_site_reference459 = this.call_site_reference();
                --this.state._fsp;
                stream_call_site_reference.add(call_site_reference459.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(172, retval.start, "I_STATEMENT_FORMAT35c_CALL_SITE"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT35c_CALL_SITE.nextNode());
                this.adaptor.addChild(root_1, stream_register_list.nextTree());
                this.adaptor.addChild(root_1, stream_call_site_reference.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var24) {
                RecognitionException re = var24;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format35c_method_return insn_format35c_method() throws RecognitionException {
        insn_format35c_method_return retval = new insn_format35c_method_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token OPEN_BRACE461 = null;
        Token CLOSE_BRACE463 = null;
        Token COMMA464 = null;
        ParserRuleReturnScope instruction_format35c_method460 = null;
        ParserRuleReturnScope register_list462 = null;
        ParserRuleReturnScope method_reference465 = null;
        CommonTree OPEN_BRACE461_tree = null;
        CommonTree CLOSE_BRACE463_tree = null;
        CommonTree COMMA464_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_OPEN_BRACE = new RewriteRuleTokenStream(this.adaptor, "token OPEN_BRACE");
        RewriteRuleTokenStream stream_CLOSE_BRACE = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_BRACE");
        RewriteRuleSubtreeStream stream_instruction_format35c_method = new RewriteRuleSubtreeStream(this.adaptor, "rule instruction_format35c_method");
        RewriteRuleSubtreeStream stream_method_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule method_reference");
        RewriteRuleSubtreeStream stream_register_list = new RewriteRuleSubtreeStream(this.adaptor, "rule register_list");

        try {
            try {
                this.pushFollow(FOLLOW_instruction_format35c_method_in_insn_format35c_method5692);
                instruction_format35c_method460 = this.instruction_format35c_method();
                --this.state._fsp;
                stream_instruction_format35c_method.add(instruction_format35c_method460.getTree());
                OPEN_BRACE461 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format35c_method5694);
                stream_OPEN_BRACE.add(OPEN_BRACE461);
                this.pushFollow(FOLLOW_register_list_in_insn_format35c_method5696);
                register_list462 = this.register_list();
                --this.state._fsp;
                stream_register_list.add(register_list462.getTree());
                CLOSE_BRACE463 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format35c_method5698);
                stream_CLOSE_BRACE.add(CLOSE_BRACE463);
                COMMA464 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format35c_method5700);
                stream_COMMA.add(COMMA464);
                this.pushFollow(FOLLOW_method_reference_in_insn_format35c_method5702);
                method_reference465 = this.method_reference();
                --this.state._fsp;
                stream_method_reference.add(method_reference465.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(173, retval.start, "I_STATEMENT_FORMAT35c_METHOD"), root_1);
                this.adaptor.addChild(root_1, stream_instruction_format35c_method.nextTree());
                this.adaptor.addChild(root_1, stream_register_list.nextTree());
                this.adaptor.addChild(root_1, stream_method_reference.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var23) {
                RecognitionException re = var23;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format35c_type_return insn_format35c_type() throws RecognitionException {
        insn_format35c_type_return retval = new insn_format35c_type_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT35c_TYPE466 = null;
        Token OPEN_BRACE467 = null;
        Token CLOSE_BRACE469 = null;
        Token COMMA470 = null;
        ParserRuleReturnScope register_list468 = null;
        ParserRuleReturnScope nonvoid_type_descriptor471 = null;
        CommonTree INSTRUCTION_FORMAT35c_TYPE466_tree = null;
        CommonTree OPEN_BRACE467_tree = null;
        CommonTree CLOSE_BRACE469_tree = null;
        CommonTree COMMA470_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT35c_TYPE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT35c_TYPE");
        RewriteRuleTokenStream stream_OPEN_BRACE = new RewriteRuleTokenStream(this.adaptor, "token OPEN_BRACE");
        RewriteRuleTokenStream stream_CLOSE_BRACE = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_BRACE");
        RewriteRuleSubtreeStream stream_register_list = new RewriteRuleSubtreeStream(this.adaptor, "rule register_list");
        RewriteRuleSubtreeStream stream_nonvoid_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule nonvoid_type_descriptor");

        try {
            try {
                INSTRUCTION_FORMAT35c_TYPE466 = (Token)this.match(this.input, 83, FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type5734);
                stream_INSTRUCTION_FORMAT35c_TYPE.add(INSTRUCTION_FORMAT35c_TYPE466);
                OPEN_BRACE467 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format35c_type5736);
                stream_OPEN_BRACE.add(OPEN_BRACE467);
                this.pushFollow(FOLLOW_register_list_in_insn_format35c_type5738);
                register_list468 = this.register_list();
                --this.state._fsp;
                stream_register_list.add(register_list468.getTree());
                CLOSE_BRACE469 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format35c_type5740);
                stream_CLOSE_BRACE.add(CLOSE_BRACE469);
                COMMA470 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format35c_type5742);
                stream_COMMA.add(COMMA470);
                this.pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type5744);
                nonvoid_type_descriptor471 = this.nonvoid_type_descriptor();
                --this.state._fsp;
                stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor471.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(174, retval.start, "I_STATEMENT_FORMAT35c_TYPE"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT35c_TYPE.nextNode());
                this.adaptor.addChild(root_1, stream_register_list.nextTree());
                this.adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var24) {
                RecognitionException re = var24;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format35c_method_odex_return insn_format35c_method_odex() throws RecognitionException {
        insn_format35c_method_odex_return retval = new insn_format35c_method_odex_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT35c_METHOD_ODEX472 = null;
        Token OPEN_BRACE473 = null;
        Token CLOSE_BRACE475 = null;
        Token COMMA476 = null;
        ParserRuleReturnScope register_list474 = null;
        ParserRuleReturnScope method_reference477 = null;
        CommonTree INSTRUCTION_FORMAT35c_METHOD_ODEX472_tree = null;
        CommonTree OPEN_BRACE473_tree = null;
        CommonTree CLOSE_BRACE475_tree = null;
        CommonTree COMMA476_tree = null;

        try {
            try {
                root_0 = (CommonTree)this.adaptor.nil();
                INSTRUCTION_FORMAT35c_METHOD_ODEX472 = (Token)this.match(this.input, 81, FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_insn_format35c_method_odex5776);
                INSTRUCTION_FORMAT35c_METHOD_ODEX472_tree = (CommonTree)this.adaptor.create(INSTRUCTION_FORMAT35c_METHOD_ODEX472);
                this.adaptor.addChild(root_0, INSTRUCTION_FORMAT35c_METHOD_ODEX472_tree);
                OPEN_BRACE473 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format35c_method_odex5778);
                OPEN_BRACE473_tree = (CommonTree)this.adaptor.create(OPEN_BRACE473);
                this.adaptor.addChild(root_0, OPEN_BRACE473_tree);
                this.pushFollow(FOLLOW_register_list_in_insn_format35c_method_odex5780);
                register_list474 = this.register_list();
                --this.state._fsp;
                this.adaptor.addChild(root_0, register_list474.getTree());
                CLOSE_BRACE475 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format35c_method_odex5782);
                CLOSE_BRACE475_tree = (CommonTree)this.adaptor.create(CLOSE_BRACE475);
                this.adaptor.addChild(root_0, CLOSE_BRACE475_tree);
                COMMA476 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format35c_method_odex5784);
                COMMA476_tree = (CommonTree)this.adaptor.create(COMMA476);
                this.adaptor.addChild(root_0, COMMA476_tree);
                this.pushFollow(FOLLOW_method_reference_in_insn_format35c_method_odex5786);
                method_reference477 = this.method_reference();
                --this.state._fsp;
                this.adaptor.addChild(root_0, method_reference477.getTree());
                this.throwOdexedInstructionException(this.input, INSTRUCTION_FORMAT35c_METHOD_ODEX472 != null ? INSTRUCTION_FORMAT35c_METHOD_ODEX472.getText() : null);
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var17) {
                RecognitionException re = var17;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format35mi_method_return insn_format35mi_method() throws RecognitionException {
        insn_format35mi_method_return retval = new insn_format35mi_method_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT35mi_METHOD478 = null;
        Token OPEN_BRACE479 = null;
        Token CLOSE_BRACE481 = null;
        Token COMMA482 = null;
        Token INLINE_INDEX483 = null;
        ParserRuleReturnScope register_list480 = null;
        CommonTree INSTRUCTION_FORMAT35mi_METHOD478_tree = null;
        CommonTree OPEN_BRACE479_tree = null;
        CommonTree CLOSE_BRACE481_tree = null;
        CommonTree COMMA482_tree = null;
        CommonTree INLINE_INDEX483_tree = null;

        try {
            try {
                root_0 = (CommonTree)this.adaptor.nil();
                INSTRUCTION_FORMAT35mi_METHOD478 = (Token)this.match(this.input, 84, FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_insn_format35mi_method5807);
                INSTRUCTION_FORMAT35mi_METHOD478_tree = (CommonTree)this.adaptor.create(INSTRUCTION_FORMAT35mi_METHOD478);
                this.adaptor.addChild(root_0, INSTRUCTION_FORMAT35mi_METHOD478_tree);
                OPEN_BRACE479 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format35mi_method5809);
                OPEN_BRACE479_tree = (CommonTree)this.adaptor.create(OPEN_BRACE479);
                this.adaptor.addChild(root_0, OPEN_BRACE479_tree);
                this.pushFollow(FOLLOW_register_list_in_insn_format35mi_method5811);
                register_list480 = this.register_list();
                --this.state._fsp;
                this.adaptor.addChild(root_0, register_list480.getTree());
                CLOSE_BRACE481 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format35mi_method5813);
                CLOSE_BRACE481_tree = (CommonTree)this.adaptor.create(CLOSE_BRACE481);
                this.adaptor.addChild(root_0, CLOSE_BRACE481_tree);
                COMMA482 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format35mi_method5815);
                COMMA482_tree = (CommonTree)this.adaptor.create(COMMA482);
                this.adaptor.addChild(root_0, COMMA482_tree);
                INLINE_INDEX483 = (Token)this.match(this.input, 43, FOLLOW_INLINE_INDEX_in_insn_format35mi_method5817);
                INLINE_INDEX483_tree = (CommonTree)this.adaptor.create(INLINE_INDEX483);
                this.adaptor.addChild(root_0, INLINE_INDEX483_tree);
                this.throwOdexedInstructionException(this.input, INSTRUCTION_FORMAT35mi_METHOD478 != null ? INSTRUCTION_FORMAT35mi_METHOD478.getText() : null);
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var18) {
                RecognitionException re = var18;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format35ms_method_return insn_format35ms_method() throws RecognitionException {
        insn_format35ms_method_return retval = new insn_format35ms_method_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT35ms_METHOD484 = null;
        Token OPEN_BRACE485 = null;
        Token CLOSE_BRACE487 = null;
        Token COMMA488 = null;
        Token VTABLE_INDEX489 = null;
        ParserRuleReturnScope register_list486 = null;
        CommonTree INSTRUCTION_FORMAT35ms_METHOD484_tree = null;
        CommonTree OPEN_BRACE485_tree = null;
        CommonTree CLOSE_BRACE487_tree = null;
        CommonTree COMMA488_tree = null;
        CommonTree VTABLE_INDEX489_tree = null;

        try {
            try {
                root_0 = (CommonTree)this.adaptor.nil();
                INSTRUCTION_FORMAT35ms_METHOD484 = (Token)this.match(this.input, 85, FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_insn_format35ms_method5838);
                INSTRUCTION_FORMAT35ms_METHOD484_tree = (CommonTree)this.adaptor.create(INSTRUCTION_FORMAT35ms_METHOD484);
                this.adaptor.addChild(root_0, INSTRUCTION_FORMAT35ms_METHOD484_tree);
                OPEN_BRACE485 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format35ms_method5840);
                OPEN_BRACE485_tree = (CommonTree)this.adaptor.create(OPEN_BRACE485);
                this.adaptor.addChild(root_0, OPEN_BRACE485_tree);
                this.pushFollow(FOLLOW_register_list_in_insn_format35ms_method5842);
                register_list486 = this.register_list();
                --this.state._fsp;
                this.adaptor.addChild(root_0, register_list486.getTree());
                CLOSE_BRACE487 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format35ms_method5844);
                CLOSE_BRACE487_tree = (CommonTree)this.adaptor.create(CLOSE_BRACE487);
                this.adaptor.addChild(root_0, CLOSE_BRACE487_tree);
                COMMA488 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format35ms_method5846);
                COMMA488_tree = (CommonTree)this.adaptor.create(COMMA488);
                this.adaptor.addChild(root_0, COMMA488_tree);
                VTABLE_INDEX489 = (Token)this.match(this.input, 216, FOLLOW_VTABLE_INDEX_in_insn_format35ms_method5848);
                VTABLE_INDEX489_tree = (CommonTree)this.adaptor.create(VTABLE_INDEX489);
                this.adaptor.addChild(root_0, VTABLE_INDEX489_tree);
                this.throwOdexedInstructionException(this.input, INSTRUCTION_FORMAT35ms_METHOD484 != null ? INSTRUCTION_FORMAT35ms_METHOD484.getText() : null);
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var18) {
                RecognitionException re = var18;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format3rc_call_site_return insn_format3rc_call_site() throws RecognitionException {
        insn_format3rc_call_site_return retval = new insn_format3rc_call_site_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT3rc_CALL_SITE490 = null;
        Token OPEN_BRACE491 = null;
        Token CLOSE_BRACE493 = null;
        Token COMMA494 = null;
        ParserRuleReturnScope register_range492 = null;
        ParserRuleReturnScope call_site_reference495 = null;
        CommonTree INSTRUCTION_FORMAT3rc_CALL_SITE490_tree = null;
        CommonTree OPEN_BRACE491_tree = null;
        CommonTree CLOSE_BRACE493_tree = null;
        CommonTree COMMA494_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_OPEN_BRACE = new RewriteRuleTokenStream(this.adaptor, "token OPEN_BRACE");
        RewriteRuleTokenStream stream_CLOSE_BRACE = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_BRACE");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT3rc_CALL_SITE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT3rc_CALL_SITE");
        RewriteRuleSubtreeStream stream_register_range = new RewriteRuleSubtreeStream(this.adaptor, "rule register_range");
        RewriteRuleSubtreeStream stream_call_site_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule call_site_reference");

        try {
            try {
                INSTRUCTION_FORMAT3rc_CALL_SITE490 = (Token)this.match(this.input, 86, FOLLOW_INSTRUCTION_FORMAT3rc_CALL_SITE_in_insn_format3rc_call_site5874);
                stream_INSTRUCTION_FORMAT3rc_CALL_SITE.add(INSTRUCTION_FORMAT3rc_CALL_SITE490);
                OPEN_BRACE491 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format3rc_call_site5876);
                stream_OPEN_BRACE.add(OPEN_BRACE491);
                this.pushFollow(FOLLOW_register_range_in_insn_format3rc_call_site5878);
                register_range492 = this.register_range();
                --this.state._fsp;
                stream_register_range.add(register_range492.getTree());
                CLOSE_BRACE493 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format3rc_call_site5880);
                stream_CLOSE_BRACE.add(CLOSE_BRACE493);
                COMMA494 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format3rc_call_site5882);
                stream_COMMA.add(COMMA494);
                this.pushFollow(FOLLOW_call_site_reference_in_insn_format3rc_call_site5884);
                call_site_reference495 = this.call_site_reference();
                --this.state._fsp;
                stream_call_site_reference.add(call_site_reference495.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(175, retval.start, "I_STATEMENT_FORMAT3rc_CALL_SITE"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT3rc_CALL_SITE.nextNode());
                this.adaptor.addChild(root_1, stream_register_range.nextTree());
                this.adaptor.addChild(root_1, stream_call_site_reference.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var24) {
                RecognitionException re = var24;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format3rc_method_return insn_format3rc_method() throws RecognitionException {
        insn_format3rc_method_return retval = new insn_format3rc_method_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT3rc_METHOD496 = null;
        Token OPEN_BRACE497 = null;
        Token CLOSE_BRACE499 = null;
        Token COMMA500 = null;
        ParserRuleReturnScope register_range498 = null;
        ParserRuleReturnScope method_reference501 = null;
        CommonTree INSTRUCTION_FORMAT3rc_METHOD496_tree = null;
        CommonTree OPEN_BRACE497_tree = null;
        CommonTree CLOSE_BRACE499_tree = null;
        CommonTree COMMA500_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT3rc_METHOD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT3rc_METHOD");
        RewriteRuleTokenStream stream_OPEN_BRACE = new RewriteRuleTokenStream(this.adaptor, "token OPEN_BRACE");
        RewriteRuleTokenStream stream_CLOSE_BRACE = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_BRACE");
        RewriteRuleSubtreeStream stream_method_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule method_reference");
        RewriteRuleSubtreeStream stream_register_range = new RewriteRuleSubtreeStream(this.adaptor, "rule register_range");

        try {
            try {
                INSTRUCTION_FORMAT3rc_METHOD496 = (Token)this.match(this.input, 87, FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method5916);
                stream_INSTRUCTION_FORMAT3rc_METHOD.add(INSTRUCTION_FORMAT3rc_METHOD496);
                OPEN_BRACE497 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format3rc_method5918);
                stream_OPEN_BRACE.add(OPEN_BRACE497);
                this.pushFollow(FOLLOW_register_range_in_insn_format3rc_method5920);
                register_range498 = this.register_range();
                --this.state._fsp;
                stream_register_range.add(register_range498.getTree());
                CLOSE_BRACE499 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format3rc_method5922);
                stream_CLOSE_BRACE.add(CLOSE_BRACE499);
                COMMA500 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format3rc_method5924);
                stream_COMMA.add(COMMA500);
                this.pushFollow(FOLLOW_method_reference_in_insn_format3rc_method5926);
                method_reference501 = this.method_reference();
                --this.state._fsp;
                stream_method_reference.add(method_reference501.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(176, retval.start, "I_STATEMENT_FORMAT3rc_METHOD"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT3rc_METHOD.nextNode());
                this.adaptor.addChild(root_1, stream_register_range.nextTree());
                this.adaptor.addChild(root_1, stream_method_reference.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var24) {
                RecognitionException re = var24;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format3rc_method_odex_return insn_format3rc_method_odex() throws RecognitionException {
        insn_format3rc_method_odex_return retval = new insn_format3rc_method_odex_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT3rc_METHOD_ODEX502 = null;
        Token OPEN_BRACE503 = null;
        Token CLOSE_BRACE505 = null;
        Token COMMA506 = null;
        ParserRuleReturnScope register_list504 = null;
        ParserRuleReturnScope method_reference507 = null;
        CommonTree INSTRUCTION_FORMAT3rc_METHOD_ODEX502_tree = null;
        CommonTree OPEN_BRACE503_tree = null;
        CommonTree CLOSE_BRACE505_tree = null;
        CommonTree COMMA506_tree = null;

        try {
            try {
                root_0 = (CommonTree)this.adaptor.nil();
                INSTRUCTION_FORMAT3rc_METHOD_ODEX502 = (Token)this.match(this.input, 88, FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_ODEX_in_insn_format3rc_method_odex5958);
                INSTRUCTION_FORMAT3rc_METHOD_ODEX502_tree = (CommonTree)this.adaptor.create(INSTRUCTION_FORMAT3rc_METHOD_ODEX502);
                this.adaptor.addChild(root_0, INSTRUCTION_FORMAT3rc_METHOD_ODEX502_tree);
                OPEN_BRACE503 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format3rc_method_odex5960);
                OPEN_BRACE503_tree = (CommonTree)this.adaptor.create(OPEN_BRACE503);
                this.adaptor.addChild(root_0, OPEN_BRACE503_tree);
                this.pushFollow(FOLLOW_register_list_in_insn_format3rc_method_odex5962);
                register_list504 = this.register_list();
                --this.state._fsp;
                this.adaptor.addChild(root_0, register_list504.getTree());
                CLOSE_BRACE505 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format3rc_method_odex5964);
                CLOSE_BRACE505_tree = (CommonTree)this.adaptor.create(CLOSE_BRACE505);
                this.adaptor.addChild(root_0, CLOSE_BRACE505_tree);
                COMMA506 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format3rc_method_odex5966);
                COMMA506_tree = (CommonTree)this.adaptor.create(COMMA506);
                this.adaptor.addChild(root_0, COMMA506_tree);
                this.pushFollow(FOLLOW_method_reference_in_insn_format3rc_method_odex5968);
                method_reference507 = this.method_reference();
                --this.state._fsp;
                this.adaptor.addChild(root_0, method_reference507.getTree());
                this.throwOdexedInstructionException(this.input, INSTRUCTION_FORMAT3rc_METHOD_ODEX502 != null ? INSTRUCTION_FORMAT3rc_METHOD_ODEX502.getText() : null);
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var17) {
                RecognitionException re = var17;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format3rc_type_return insn_format3rc_type() throws RecognitionException {
        insn_format3rc_type_return retval = new insn_format3rc_type_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT3rc_TYPE508 = null;
        Token OPEN_BRACE509 = null;
        Token CLOSE_BRACE511 = null;
        Token COMMA512 = null;
        ParserRuleReturnScope register_range510 = null;
        ParserRuleReturnScope nonvoid_type_descriptor513 = null;
        CommonTree INSTRUCTION_FORMAT3rc_TYPE508_tree = null;
        CommonTree OPEN_BRACE509_tree = null;
        CommonTree CLOSE_BRACE511_tree = null;
        CommonTree COMMA512_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_OPEN_BRACE = new RewriteRuleTokenStream(this.adaptor, "token OPEN_BRACE");
        RewriteRuleTokenStream stream_CLOSE_BRACE = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_BRACE");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT3rc_TYPE = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT3rc_TYPE");
        RewriteRuleSubtreeStream stream_nonvoid_type_descriptor = new RewriteRuleSubtreeStream(this.adaptor, "rule nonvoid_type_descriptor");
        RewriteRuleSubtreeStream stream_register_range = new RewriteRuleSubtreeStream(this.adaptor, "rule register_range");

        try {
            try {
                INSTRUCTION_FORMAT3rc_TYPE508 = (Token)this.match(this.input, 89, FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type5989);
                stream_INSTRUCTION_FORMAT3rc_TYPE.add(INSTRUCTION_FORMAT3rc_TYPE508);
                OPEN_BRACE509 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format3rc_type5991);
                stream_OPEN_BRACE.add(OPEN_BRACE509);
                this.pushFollow(FOLLOW_register_range_in_insn_format3rc_type5993);
                register_range510 = this.register_range();
                --this.state._fsp;
                stream_register_range.add(register_range510.getTree());
                CLOSE_BRACE511 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format3rc_type5995);
                stream_CLOSE_BRACE.add(CLOSE_BRACE511);
                COMMA512 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format3rc_type5997);
                stream_COMMA.add(COMMA512);
                this.pushFollow(FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type5999);
                nonvoid_type_descriptor513 = this.nonvoid_type_descriptor();
                --this.state._fsp;
                stream_nonvoid_type_descriptor.add(nonvoid_type_descriptor513.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(177, retval.start, "I_STATEMENT_FORMAT3rc_TYPE"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT3rc_TYPE.nextNode());
                this.adaptor.addChild(root_1, stream_register_range.nextTree());
                this.adaptor.addChild(root_1, stream_nonvoid_type_descriptor.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var24) {
                RecognitionException re = var24;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format3rmi_method_return insn_format3rmi_method() throws RecognitionException {
        insn_format3rmi_method_return retval = new insn_format3rmi_method_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT3rmi_METHOD514 = null;
        Token OPEN_BRACE515 = null;
        Token CLOSE_BRACE517 = null;
        Token COMMA518 = null;
        Token INLINE_INDEX519 = null;
        ParserRuleReturnScope register_range516 = null;
        CommonTree INSTRUCTION_FORMAT3rmi_METHOD514_tree = null;
        CommonTree OPEN_BRACE515_tree = null;
        CommonTree CLOSE_BRACE517_tree = null;
        CommonTree COMMA518_tree = null;
        CommonTree INLINE_INDEX519_tree = null;

        try {
            try {
                root_0 = (CommonTree)this.adaptor.nil();
                INSTRUCTION_FORMAT3rmi_METHOD514 = (Token)this.match(this.input, 90, FOLLOW_INSTRUCTION_FORMAT3rmi_METHOD_in_insn_format3rmi_method6031);
                INSTRUCTION_FORMAT3rmi_METHOD514_tree = (CommonTree)this.adaptor.create(INSTRUCTION_FORMAT3rmi_METHOD514);
                this.adaptor.addChild(root_0, INSTRUCTION_FORMAT3rmi_METHOD514_tree);
                OPEN_BRACE515 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format3rmi_method6033);
                OPEN_BRACE515_tree = (CommonTree)this.adaptor.create(OPEN_BRACE515);
                this.adaptor.addChild(root_0, OPEN_BRACE515_tree);
                this.pushFollow(FOLLOW_register_range_in_insn_format3rmi_method6035);
                register_range516 = this.register_range();
                --this.state._fsp;
                this.adaptor.addChild(root_0, register_range516.getTree());
                CLOSE_BRACE517 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format3rmi_method6037);
                CLOSE_BRACE517_tree = (CommonTree)this.adaptor.create(CLOSE_BRACE517);
                this.adaptor.addChild(root_0, CLOSE_BRACE517_tree);
                COMMA518 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format3rmi_method6039);
                COMMA518_tree = (CommonTree)this.adaptor.create(COMMA518);
                this.adaptor.addChild(root_0, COMMA518_tree);
                INLINE_INDEX519 = (Token)this.match(this.input, 43, FOLLOW_INLINE_INDEX_in_insn_format3rmi_method6041);
                INLINE_INDEX519_tree = (CommonTree)this.adaptor.create(INLINE_INDEX519);
                this.adaptor.addChild(root_0, INLINE_INDEX519_tree);
                this.throwOdexedInstructionException(this.input, INSTRUCTION_FORMAT3rmi_METHOD514 != null ? INSTRUCTION_FORMAT3rmi_METHOD514.getText() : null);
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var18) {
                RecognitionException re = var18;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format3rms_method_return insn_format3rms_method() throws RecognitionException {
        insn_format3rms_method_return retval = new insn_format3rms_method_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT3rms_METHOD520 = null;
        Token OPEN_BRACE521 = null;
        Token CLOSE_BRACE523 = null;
        Token COMMA524 = null;
        Token VTABLE_INDEX525 = null;
        ParserRuleReturnScope register_range522 = null;
        CommonTree INSTRUCTION_FORMAT3rms_METHOD520_tree = null;
        CommonTree OPEN_BRACE521_tree = null;
        CommonTree CLOSE_BRACE523_tree = null;
        CommonTree COMMA524_tree = null;
        CommonTree VTABLE_INDEX525_tree = null;

        try {
            try {
                root_0 = (CommonTree)this.adaptor.nil();
                INSTRUCTION_FORMAT3rms_METHOD520 = (Token)this.match(this.input, 91, FOLLOW_INSTRUCTION_FORMAT3rms_METHOD_in_insn_format3rms_method6062);
                INSTRUCTION_FORMAT3rms_METHOD520_tree = (CommonTree)this.adaptor.create(INSTRUCTION_FORMAT3rms_METHOD520);
                this.adaptor.addChild(root_0, INSTRUCTION_FORMAT3rms_METHOD520_tree);
                OPEN_BRACE521 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format3rms_method6064);
                OPEN_BRACE521_tree = (CommonTree)this.adaptor.create(OPEN_BRACE521);
                this.adaptor.addChild(root_0, OPEN_BRACE521_tree);
                this.pushFollow(FOLLOW_register_range_in_insn_format3rms_method6066);
                register_range522 = this.register_range();
                --this.state._fsp;
                this.adaptor.addChild(root_0, register_range522.getTree());
                CLOSE_BRACE523 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format3rms_method6068);
                CLOSE_BRACE523_tree = (CommonTree)this.adaptor.create(CLOSE_BRACE523);
                this.adaptor.addChild(root_0, CLOSE_BRACE523_tree);
                COMMA524 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format3rms_method6070);
                COMMA524_tree = (CommonTree)this.adaptor.create(COMMA524);
                this.adaptor.addChild(root_0, COMMA524_tree);
                VTABLE_INDEX525 = (Token)this.match(this.input, 216, FOLLOW_VTABLE_INDEX_in_insn_format3rms_method6072);
                VTABLE_INDEX525_tree = (CommonTree)this.adaptor.create(VTABLE_INDEX525);
                this.adaptor.addChild(root_0, VTABLE_INDEX525_tree);
                this.throwOdexedInstructionException(this.input, INSTRUCTION_FORMAT3rms_METHOD520 != null ? INSTRUCTION_FORMAT3rms_METHOD520.getText() : null);
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var18) {
                RecognitionException re = var18;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format45cc_method_return insn_format45cc_method() throws RecognitionException {
        insn_format45cc_method_return retval = new insn_format45cc_method_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT45cc_METHOD526 = null;
        Token OPEN_BRACE527 = null;
        Token CLOSE_BRACE529 = null;
        Token COMMA530 = null;
        Token COMMA532 = null;
        ParserRuleReturnScope register_list528 = null;
        ParserRuleReturnScope method_reference531 = null;
        ParserRuleReturnScope method_prototype533 = null;
        CommonTree INSTRUCTION_FORMAT45cc_METHOD526_tree = null;
        CommonTree OPEN_BRACE527_tree = null;
        CommonTree CLOSE_BRACE529_tree = null;
        CommonTree COMMA530_tree = null;
        CommonTree COMMA532_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT45cc_METHOD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT45cc_METHOD");
        RewriteRuleTokenStream stream_OPEN_BRACE = new RewriteRuleTokenStream(this.adaptor, "token OPEN_BRACE");
        RewriteRuleTokenStream stream_CLOSE_BRACE = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_BRACE");
        RewriteRuleSubtreeStream stream_method_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule method_reference");
        RewriteRuleSubtreeStream stream_method_prototype = new RewriteRuleSubtreeStream(this.adaptor, "rule method_prototype");
        RewriteRuleSubtreeStream stream_register_list = new RewriteRuleSubtreeStream(this.adaptor, "rule register_list");

        try {
            try {
                INSTRUCTION_FORMAT45cc_METHOD526 = (Token)this.match(this.input, 92, FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_insn_format45cc_method6093);
                stream_INSTRUCTION_FORMAT45cc_METHOD.add(INSTRUCTION_FORMAT45cc_METHOD526);
                OPEN_BRACE527 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format45cc_method6095);
                stream_OPEN_BRACE.add(OPEN_BRACE527);
                this.pushFollow(FOLLOW_register_list_in_insn_format45cc_method6097);
                register_list528 = this.register_list();
                --this.state._fsp;
                stream_register_list.add(register_list528.getTree());
                CLOSE_BRACE529 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format45cc_method6099);
                stream_CLOSE_BRACE.add(CLOSE_BRACE529);
                COMMA530 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format45cc_method6101);
                stream_COMMA.add(COMMA530);
                this.pushFollow(FOLLOW_method_reference_in_insn_format45cc_method6103);
                method_reference531 = this.method_reference();
                --this.state._fsp;
                stream_method_reference.add(method_reference531.getTree());
                COMMA532 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format45cc_method6105);
                stream_COMMA.add(COMMA532);
                this.pushFollow(FOLLOW_method_prototype_in_insn_format45cc_method6107);
                method_prototype533 = this.method_prototype();
                --this.state._fsp;
                stream_method_prototype.add(method_prototype533.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(178, retval.start, "I_STATEMENT_FORMAT45cc_METHOD"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT45cc_METHOD.nextNode());
                this.adaptor.addChild(root_1, stream_register_list.nextTree());
                this.adaptor.addChild(root_1, stream_method_reference.nextTree());
                this.adaptor.addChild(root_1, stream_method_prototype.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var28) {
                RecognitionException re = var28;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format4rcc_method_return insn_format4rcc_method() throws RecognitionException {
        insn_format4rcc_method_return retval = new insn_format4rcc_method_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT4rcc_METHOD534 = null;
        Token OPEN_BRACE535 = null;
        Token CLOSE_BRACE537 = null;
        Token COMMA538 = null;
        Token COMMA540 = null;
        ParserRuleReturnScope register_range536 = null;
        ParserRuleReturnScope method_reference539 = null;
        ParserRuleReturnScope method_prototype541 = null;
        CommonTree INSTRUCTION_FORMAT4rcc_METHOD534_tree = null;
        CommonTree OPEN_BRACE535_tree = null;
        CommonTree CLOSE_BRACE537_tree = null;
        CommonTree COMMA538_tree = null;
        CommonTree COMMA540_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_OPEN_BRACE = new RewriteRuleTokenStream(this.adaptor, "token OPEN_BRACE");
        RewriteRuleTokenStream stream_CLOSE_BRACE = new RewriteRuleTokenStream(this.adaptor, "token CLOSE_BRACE");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT4rcc_METHOD = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT4rcc_METHOD");
        RewriteRuleSubtreeStream stream_method_reference = new RewriteRuleSubtreeStream(this.adaptor, "rule method_reference");
        RewriteRuleSubtreeStream stream_method_prototype = new RewriteRuleSubtreeStream(this.adaptor, "rule method_prototype");
        RewriteRuleSubtreeStream stream_register_range = new RewriteRuleSubtreeStream(this.adaptor, "rule register_range");

        try {
            try {
                INSTRUCTION_FORMAT4rcc_METHOD534 = (Token)this.match(this.input, 93, FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_insn_format4rcc_method6141);
                stream_INSTRUCTION_FORMAT4rcc_METHOD.add(INSTRUCTION_FORMAT4rcc_METHOD534);
                OPEN_BRACE535 = (Token)this.match(this.input, 196, FOLLOW_OPEN_BRACE_in_insn_format4rcc_method6143);
                stream_OPEN_BRACE.add(OPEN_BRACE535);
                this.pushFollow(FOLLOW_register_range_in_insn_format4rcc_method6145);
                register_range536 = this.register_range();
                --this.state._fsp;
                stream_register_range.add(register_range536.getTree());
                CLOSE_BRACE537 = (Token)this.match(this.input, 18, FOLLOW_CLOSE_BRACE_in_insn_format4rcc_method6147);
                stream_CLOSE_BRACE.add(CLOSE_BRACE537);
                COMMA538 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format4rcc_method6149);
                stream_COMMA.add(COMMA538);
                this.pushFollow(FOLLOW_method_reference_in_insn_format4rcc_method6151);
                method_reference539 = this.method_reference();
                --this.state._fsp;
                stream_method_reference.add(method_reference539.getTree());
                COMMA540 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format4rcc_method6153);
                stream_COMMA.add(COMMA540);
                this.pushFollow(FOLLOW_method_prototype_in_insn_format4rcc_method6155);
                method_prototype541 = this.method_prototype();
                --this.state._fsp;
                stream_method_prototype.add(method_prototype541.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(179, retval.start, "I_STATEMENT_FORMAT4rcc_METHOD"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT4rcc_METHOD.nextNode());
                this.adaptor.addChild(root_1, stream_register_range.nextTree());
                this.adaptor.addChild(root_1, stream_method_reference.nextTree());
                this.adaptor.addChild(root_1, stream_method_prototype.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var28) {
                RecognitionException re = var28;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_format51l_return insn_format51l() throws RecognitionException {
        insn_format51l_return retval = new insn_format51l_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token INSTRUCTION_FORMAT51l542 = null;
        Token REGISTER543 = null;
        Token COMMA544 = null;
        ParserRuleReturnScope fixed_literal545 = null;
        CommonTree INSTRUCTION_FORMAT51l542_tree = null;
        CommonTree REGISTER543_tree = null;
        CommonTree COMMA544_tree = null;
        RewriteRuleTokenStream stream_COMMA = new RewriteRuleTokenStream(this.adaptor, "token COMMA");
        RewriteRuleTokenStream stream_REGISTER = new RewriteRuleTokenStream(this.adaptor, "token REGISTER");
        RewriteRuleTokenStream stream_INSTRUCTION_FORMAT51l = new RewriteRuleTokenStream(this.adaptor, "token INSTRUCTION_FORMAT51l");
        RewriteRuleSubtreeStream stream_fixed_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule fixed_literal");

        try {
            try {
                INSTRUCTION_FORMAT51l542 = (Token)this.match(this.input, 94, FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l6189);
                stream_INSTRUCTION_FORMAT51l.add(INSTRUCTION_FORMAT51l542);
                REGISTER543 = (Token)this.match(this.input, 204, FOLLOW_REGISTER_in_insn_format51l6191);
                stream_REGISTER.add(REGISTER543);
                COMMA544 = (Token)this.match(this.input, 21, FOLLOW_COMMA_in_insn_format51l6193);
                stream_COMMA.add(COMMA544);
                this.pushFollow(FOLLOW_fixed_literal_in_insn_format51l6195);
                fixed_literal545 = this.fixed_literal();
                --this.state._fsp;
                stream_fixed_literal.add(fixed_literal545.getTree());
                retval.tree = root_0;
                new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                root_0 = (CommonTree)this.adaptor.nil();
                CommonTree root_1 = (CommonTree)this.adaptor.nil();
                root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(180, retval.start, "I_STATEMENT_FORMAT51l"), root_1);
                this.adaptor.addChild(root_1, stream_INSTRUCTION_FORMAT51l.nextNode());
                this.adaptor.addChild(root_1, stream_REGISTER.nextNode());
                this.adaptor.addChild(root_1, stream_fixed_literal.nextTree());
                this.adaptor.addChild(root_0, root_1);
                retval.tree = root_0;
                retval.stop = this.input.LT(-1);
                retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
            } catch (RecognitionException var19) {
                RecognitionException re = var19;
                this.reportError(re);
                this.recover(this.input, re);
                retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            }

            return retval;
        } finally {
            ;
        }
    }

    public final insn_array_data_directive_return insn_array_data_directive() throws RecognitionException {
        insn_array_data_directive_return retval = new insn_array_data_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token ARRAY_DATA_DIRECTIVE546 = null;
        Token END_ARRAY_DATA_DIRECTIVE549 = null;
        ParserRuleReturnScope parsed_integer_literal547 = null;
        ParserRuleReturnScope fixed_literal548 = null;
        CommonTree ARRAY_DATA_DIRECTIVE546_tree = null;
        CommonTree END_ARRAY_DATA_DIRECTIVE549_tree = null;
        RewriteRuleTokenStream stream_END_ARRAY_DATA_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token END_ARRAY_DATA_DIRECTIVE");
        RewriteRuleTokenStream stream_ARRAY_DATA_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token ARRAY_DATA_DIRECTIVE");
        RewriteRuleSubtreeStream stream_parsed_integer_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule parsed_integer_literal");
        RewriteRuleSubtreeStream stream_fixed_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule fixed_literal");

        try {
            ARRAY_DATA_DIRECTIVE546 = (Token)this.match(this.input, 7, FOLLOW_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive6222);
            stream_ARRAY_DATA_DIRECTIVE.add(ARRAY_DATA_DIRECTIVE546);
            this.pushFollow(FOLLOW_parsed_integer_literal_in_insn_array_data_directive6228);
            parsed_integer_literal547 = this.parsed_integer_literal();
            --this.state._fsp;
            stream_parsed_integer_literal.add(parsed_integer_literal547.getTree());
            int elementWidth = parsed_integer_literal547 != null ? ((parsed_integer_literal_return)parsed_integer_literal547).value : 0;
            if (elementWidth != 4 && elementWidth != 8 && elementWidth != 1 && elementWidth != 2) {
                throw new SemanticException(this.input, retval.start, "Invalid element width: %d. Must be 1, 2, 4 or 8", new Object[]{elementWidth});
            } else {
                while(true) {
                    int alt56 = 2;
                    int LA56_0 = this.input.LA(1);
                    if (LA56_0 >= 11 && LA56_0 <= 12 || LA56_0 == 15 || LA56_0 >= 23 && LA56_0 <= 24 || LA56_0 >= 39 && LA56_0 <= 40 || LA56_0 == 189 || LA56_0 == 194 || LA56_0 == 201 || LA56_0 == 207) {
                        alt56 = 1;
                    }

                    switch (alt56) {
                        case 1:
                            this.pushFollow(FOLLOW_fixed_literal_in_insn_array_data_directive6240);
                            fixed_literal548 = this.fixed_literal();
                            --this.state._fsp;
                            stream_fixed_literal.add(fixed_literal548.getTree());
                            break;
                        default:
                            END_ARRAY_DATA_DIRECTIVE549 = (Token)this.match(this.input, 26, FOLLOW_END_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive6243);
                            stream_END_ARRAY_DATA_DIRECTIVE.add(END_ARRAY_DATA_DIRECTIVE549);
                            retval.tree = root_0;
                            new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                            root_0 = (CommonTree)this.adaptor.nil();
                            CommonTree root_1 = (CommonTree)this.adaptor.nil();
                            root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(143, retval.start, "I_STATEMENT_ARRAY_DATA"), root_1);
                            CommonTree root_2 = (CommonTree)this.adaptor.nil();
                            root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(103, "I_ARRAY_ELEMENT_SIZE"), root_2);
                            this.adaptor.addChild(root_2, stream_parsed_integer_literal.nextTree());
                            this.adaptor.addChild(root_1, root_2);
                            root_2 = (CommonTree)this.adaptor.nil();
                            root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(102, "I_ARRAY_ELEMENTS"), root_2);

                            while(stream_fixed_literal.hasNext()) {
                                this.adaptor.addChild(root_2, stream_fixed_literal.nextTree());
                            }

                            stream_fixed_literal.reset();
                            this.adaptor.addChild(root_1, root_2);
                            this.adaptor.addChild(root_0, root_1);
                            retval.tree = root_0;
                            retval.stop = this.input.LT(-1);
                            retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                            this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                            return retval;
                    }
                }
            }
        } catch (RecognitionException var20) {
            RecognitionException re = var20;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            return retval;
        } finally {
            ;
        }
    }

    public final insn_packed_switch_directive_return insn_packed_switch_directive() throws RecognitionException {
        insn_packed_switch_directive_return retval = new insn_packed_switch_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token PACKED_SWITCH_DIRECTIVE550 = null;
        Token END_PACKED_SWITCH_DIRECTIVE553 = null;
        ParserRuleReturnScope fixed_32bit_literal551 = null;
        ParserRuleReturnScope label_ref552 = null;
        CommonTree PACKED_SWITCH_DIRECTIVE550_tree = null;
        CommonTree END_PACKED_SWITCH_DIRECTIVE553_tree = null;
        RewriteRuleTokenStream stream_END_PACKED_SWITCH_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token END_PACKED_SWITCH_DIRECTIVE");
        RewriteRuleTokenStream stream_PACKED_SWITCH_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token PACKED_SWITCH_DIRECTIVE");
        RewriteRuleSubtreeStream stream_fixed_32bit_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule fixed_32bit_literal");
        RewriteRuleSubtreeStream stream_label_ref = new RewriteRuleSubtreeStream(this.adaptor, "rule label_ref");

        try {
            PACKED_SWITCH_DIRECTIVE550 = (Token)this.match(this.input, 198, FOLLOW_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive6289);
            stream_PACKED_SWITCH_DIRECTIVE.add(PACKED_SWITCH_DIRECTIVE550);
            this.pushFollow(FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive6295);
            fixed_32bit_literal551 = this.fixed_32bit_literal();
            --this.state._fsp;
            stream_fixed_32bit_literal.add(fixed_32bit_literal551.getTree());

            while(true) {
                int alt57 = 2;
                int LA57_0 = this.input.LA(1);
                if (LA57_0 == 20) {
                    alt57 = 1;
                }

                switch (alt57) {
                    case 1:
                        this.pushFollow(FOLLOW_label_ref_in_insn_packed_switch_directive6301);
                        label_ref552 = this.label_ref();
                        --this.state._fsp;
                        stream_label_ref.add(label_ref552.getTree());
                        break;
                    default:
                        END_PACKED_SWITCH_DIRECTIVE553 = (Token)this.match(this.input, 30, FOLLOW_END_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive6308);
                        stream_END_PACKED_SWITCH_DIRECTIVE.add(END_PACKED_SWITCH_DIRECTIVE553);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        CommonTree root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(181, retval.start, "I_STATEMENT_PACKED_SWITCH"), root_1);
                        CommonTree root_2 = (CommonTree)this.adaptor.nil();
                        root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(132, retval.start, "I_PACKED_SWITCH_START_KEY"), root_2);
                        this.adaptor.addChild(root_2, stream_fixed_32bit_literal.nextTree());
                        this.adaptor.addChild(root_1, root_2);
                        root_2 = (CommonTree)this.adaptor.nil();
                        root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(131, retval.start, "I_PACKED_SWITCH_ELEMENTS"), root_2);

                        while(stream_label_ref.hasNext()) {
                            this.adaptor.addChild(root_2, stream_label_ref.nextTree());
                        }

                        stream_label_ref.reset();
                        this.adaptor.addChild(root_1, root_2);
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                        return retval;
                }
            }
        } catch (RecognitionException var19) {
            RecognitionException re = var19;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            return retval;
        } finally {
            ;
        }
    }

    public final insn_sparse_switch_directive_return insn_sparse_switch_directive() throws RecognitionException {
        insn_sparse_switch_directive_return retval = new insn_sparse_switch_directive_return();
        retval.start = this.input.LT(1);
        CommonTree root_0 = null;
        Token SPARSE_SWITCH_DIRECTIVE554 = null;
        Token ARROW556 = null;
        Token END_SPARSE_SWITCH_DIRECTIVE558 = null;
        ParserRuleReturnScope fixed_32bit_literal555 = null;
        ParserRuleReturnScope label_ref557 = null;
        CommonTree SPARSE_SWITCH_DIRECTIVE554_tree = null;
        CommonTree ARROW556_tree = null;
        CommonTree END_SPARSE_SWITCH_DIRECTIVE558_tree = null;
        RewriteRuleTokenStream stream_ARROW = new RewriteRuleTokenStream(this.adaptor, "token ARROW");
        RewriteRuleTokenStream stream_SPARSE_SWITCH_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token SPARSE_SWITCH_DIRECTIVE");
        RewriteRuleTokenStream stream_END_SPARSE_SWITCH_DIRECTIVE = new RewriteRuleTokenStream(this.adaptor, "token END_SPARSE_SWITCH_DIRECTIVE");
        RewriteRuleSubtreeStream stream_fixed_32bit_literal = new RewriteRuleSubtreeStream(this.adaptor, "rule fixed_32bit_literal");
        RewriteRuleSubtreeStream stream_label_ref = new RewriteRuleSubtreeStream(this.adaptor, "rule label_ref");

        try {
            SPARSE_SWITCH_DIRECTIVE554 = (Token)this.match(this.input, 210, FOLLOW_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive6382);
            stream_SPARSE_SWITCH_DIRECTIVE.add(SPARSE_SWITCH_DIRECTIVE554);

            while(true) {
                int alt58 = 2;
                int LA58_0 = this.input.LA(1);
                if (LA58_0 >= 11 && LA58_0 <= 12 || LA58_0 == 15 || LA58_0 >= 39 && LA58_0 <= 40 || LA58_0 == 189 || LA58_0 == 194 || LA58_0 == 201 || LA58_0 == 207) {
                    alt58 = 1;
                }

                switch (alt58) {
                    case 1:
                        this.pushFollow(FOLLOW_fixed_32bit_literal_in_insn_sparse_switch_directive6389);
                        fixed_32bit_literal555 = this.fixed_32bit_literal();
                        --this.state._fsp;
                        stream_fixed_32bit_literal.add(fixed_32bit_literal555.getTree());
                        ARROW556 = (Token)this.match(this.input, 9, FOLLOW_ARROW_in_insn_sparse_switch_directive6391);
                        stream_ARROW.add(ARROW556);
                        this.pushFollow(FOLLOW_label_ref_in_insn_sparse_switch_directive6393);
                        label_ref557 = this.label_ref();
                        --this.state._fsp;
                        stream_label_ref.add(label_ref557.getTree());
                        break;
                    default:
                        END_SPARSE_SWITCH_DIRECTIVE558 = (Token)this.match(this.input, 32, FOLLOW_END_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive6401);
                        stream_END_SPARSE_SWITCH_DIRECTIVE.add(END_SPARSE_SWITCH_DIRECTIVE558);
                        retval.tree = root_0;
                        new RewriteRuleSubtreeStream(this.adaptor, "rule retval", retval != null ? retval.getTree() : null);
                        root_0 = (CommonTree)this.adaptor.nil();
                        CommonTree root_1 = (CommonTree)this.adaptor.nil();
                        root_1 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(182, retval.start, "I_STATEMENT_SPARSE_SWITCH"), root_1);
                        CommonTree root_2 = (CommonTree)this.adaptor.nil();
                        root_2 = (CommonTree)this.adaptor.becomeRoot((CommonTree)this.adaptor.create(142, retval.start, "I_SPARSE_SWITCH_ELEMENTS"), root_2);

                        while(stream_fixed_32bit_literal.hasNext() || stream_label_ref.hasNext()) {
                            this.adaptor.addChild(root_2, stream_fixed_32bit_literal.nextTree());
                            this.adaptor.addChild(root_2, stream_label_ref.nextTree());
                        }

                        stream_fixed_32bit_literal.reset();
                        stream_label_ref.reset();
                        this.adaptor.addChild(root_1, root_2);
                        this.adaptor.addChild(root_0, root_1);
                        retval.tree = root_0;
                        retval.stop = this.input.LT(-1);
                        retval.tree = (CommonTree)this.adaptor.rulePostProcessing(root_0);
                        this.adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
                        return retval;
                }
            }
        } catch (RecognitionException var22) {
            RecognitionException re = var22;
            this.reportError(re);
            this.recover(this.input, re);
            retval.tree = (CommonTree)this.adaptor.errorNode(this.input, retval.start, this.input.LT(-1), re);
            return retval;
        } finally {
            ;
        }
    }

    static {
        int numStates = DFA31_transitionS.length;
        DFA31_transition = new short[numStates][];

        int i;
        for(i = 0; i < numStates; ++i) {
            DFA31_transition[i] = DFA.unpackEncodedString(DFA31_transitionS[i]);
        }

        DFA41_transitionS = new String[]{"\u0001\u0004\u0001\uffff\u0001\u0011\u0001\uffff\u0001\u0002\u0002\uffff\u0001\u000b\u0004\uffff\u0001\u0001\u0007\uffff\u0001\n\u000f\uffff\u0001\t\u0001\u0005\u0002\uffff\u0001\u0014\u0001\u0015\u0001\u0016\u0001\uffff\u0001\u0017\u0001\uffff\u0001\u0018\u0002\uffff\u0001\u0019\u0001\u001a\u0001\u001b\u0001\u001c\u0001\u001d\u0001\u001e\u0003\uffff\u0001\u001f\u0001\uffff\u0001 \u0001!\u0001\"\u0001#\u0001\uffff\u0001$\u0001%\u0001\uffff\u0001&\u0003\uffff\u0001'\u0001(\u0001\uffff\u0001)\u0001*\u0001+\u0001,\u0001-\u0001.\u0001/\u0006\uffff\u00010\u00011\u00012_\uffff\u00013\u0001\uffff\u0001\u0012\u0001\u0013\u0001\b\u0001\f\u0004\uffff\u0001\u000e\u0001\u0007\u0001\u000f\u0001\uffff\u0001\r\u0003\uffff\u0001\u0003\u0005\uffff\u0001\u0006\u0001\u0010", "\u00014\u0001\uffff\u00014\u0001\uffff\u00015\u0003\uffff\u00024\u0005\uffff\u00014\u0007\uffff\u00024\u0005\uffff\u00014\b\uffff34[\uffff\u00034\t\uffff\u00024\u0003\uffff\u00014\u0001\uffff\u00024\u0002\uffff\u00024", "\u00016¹\uffff\u00016", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018\u0002\uffff\u0001\u000e", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "\u00017°\uffff\u00018", "", "\u0001\u0004\u0001\uffff\u0001\u0011\u0004\uffff\u0001\u000b\f\uffff\u0001\n\u000f\uffff\u0001\t\u0001\u0005\u0002\uffff\u0001\u0014\u0001\u0015\u0001\u0016\u0001\uffff\u0001\u0017\u0001\uffff\u0001\u0018\u0002\uffff\u0001\u0019\u0001\u001a\u0001\u001b\u0001\u001c\u0001\u001d\u0001\u001e\u0003\uffff\u0001\u001f\u0001\uffff\u0001 \u0001!\u0001\"\u0001#\u0001\uffff\u0001$\u0001%\u0001\uffff\u0001&\u0003\uffff\u0001'\u0001(\u0001\uffff\u0001)\u0001*\u0001+\u0001,\u0001-\u0001.\u0001/\u0006\uffff\u00010\u00011\u00012_\uffff\u00013\u0001\uffff\u0001\u0012\u0001\u0013\u0001\b\u0001\f\u0004\uffff\u0001\u000e\u0001\u0007\u0001\u000f\u0001\uffff\u0001\r\u0003\uffff\u0001\u0003\u0005\uffff\u0001\u0006\u0001\u0010", "\u00015", "", ""};
        DFA41_eot = DFA.unpackEncodedString("9\uffff");
        DFA41_eof = DFA.unpackEncodedString("9\uffff");
        DFA41_min = DFA.unpackEncodedStringToUnsignedChars("\u0001\u0004\u0001\u0005\u0001\u00101\u0014\u0001\uffff\u0001\u0004\u0001\t\u0002\uffff");
        DFA41_max = DFA.unpackEncodedStringToUnsignedChars("\u0001×\u0001Ò\u0001Ê\u000bÅ\u0001È%Å\u0001\uffff\u0001×\u0001\t\u0002\uffff");
        DFA41_accept = DFA.unpackEncodedString("4\uffff\u0001\u0001\u0002\uffff\u0001\u0002\u0001\u0003");
        DFA41_special = DFA.unpackEncodedString("9\uffff}>");
        numStates = DFA41_transitionS.length;
        DFA41_transition = new short[numStates][];

        for(i = 0; i < numStates; ++i) {
            DFA41_transition[i] = DFA.unpackEncodedString(DFA41_transitionS[i]);
        }

        DFA43_transitionS = new String[]{"\u0001F\u0001\uffff\u0001\u0001\u0005\uffff\u0002\u0001\u0005\uffff\u0001\u0001\u0007\uffff\u0002\u0001\u0001\uffff\u0001\u0001\u0003\uffff\u0001\u0001\b\uffff3\u0001[\uffff\u0003\u0001\t\uffff\u0002\u0001\u0003\uffff\u0001\u0001\u0001\uffff\u0002\u0001\u0002\uffff\u0002\u0001", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "\u0001\uffff", ""};
        DFA43_eot = DFA.unpackEncodedString("H\uffff");
        DFA43_eof = DFA.unpackEncodedString("H\uffff");
        DFA43_min = DFA.unpackEncodedStringToUnsignedChars("\u0001\u0005E\uffff\u0001\u0000\u0001\uffff");
        DFA43_max = DFA.unpackEncodedStringToUnsignedChars("\u0001ÒE\uffff\u0001\u0000\u0001\uffff");
        DFA43_accept = DFA.unpackEncodedString("\u0001\uffff\u0001\u0002E\uffff\u0001\u0001");
        DFA43_special = DFA.unpackEncodedString("F\uffff\u0001\u0000\u0001\uffff}>");
        numStates = DFA43_transitionS.length;
        DFA43_transition = new short[numStates][];

        for(i = 0; i < numStates; ++i) {
            DFA43_transition[i] = DFA.unpackEncodedString(DFA43_transitionS[i]);
        }

        FOLLOW_class_spec_in_smali_file1150 = new BitSet(new long[]{4535485595680L, 0L, Long.MIN_VALUE, 2228224L});
        FOLLOW_super_spec_in_smali_file1161 = new BitSet(new long[]{4535485595680L, 0L, Long.MIN_VALUE, 2228224L});
        FOLLOW_implements_spec_in_smali_file1169 = new BitSet(new long[]{4535485595680L, 0L, Long.MIN_VALUE, 2228224L});
        FOLLOW_source_spec_in_smali_file1178 = new BitSet(new long[]{4535485595680L, 0L, Long.MIN_VALUE, 2228224L});
        FOLLOW_method_in_smali_file1186 = new BitSet(new long[]{4535485595680L, 0L, Long.MIN_VALUE, 2228224L});
        FOLLOW_field_in_smali_file1192 = new BitSet(new long[]{4535485595680L, 0L, Long.MIN_VALUE, 2228224L});
        FOLLOW_annotation_in_smali_file1198 = new BitSet(new long[]{4535485595680L, 0L, Long.MIN_VALUE, 2228224L});
        FOLLOW_EOF_in_smali_file1209 = new BitSet(new long[]{2L});
        FOLLOW_CLASS_DIRECTIVE_in_class_spec1296 = new BitSet(new long[]{65552L});
        FOLLOW_access_list_in_class_spec1298 = new BitSet(new long[]{65536L});
        FOLLOW_CLASS_DESCRIPTOR_in_class_spec1300 = new BitSet(new long[]{2L});
        FOLLOW_SUPER_DIRECTIVE_in_super_spec1318 = new BitSet(new long[]{65536L});
        FOLLOW_CLASS_DESCRIPTOR_in_super_spec1320 = new BitSet(new long[]{2L});
        FOLLOW_IMPLEMENTS_DIRECTIVE_in_implements_spec1339 = new BitSet(new long[]{65536L});
        FOLLOW_CLASS_DESCRIPTOR_in_implements_spec1341 = new BitSet(new long[]{2L});
        FOLLOW_SOURCE_DIRECTIVE_in_source_spec1360 = new BitSet(new long[]{0L, 0L, 0L, 524288L});
        FOLLOW_STRING_LITERAL_in_source_spec1362 = new BitSet(new long[]{2L});
        FOLLOW_ACCESS_SPEC_in_access_list1381 = new BitSet(new long[]{18L});
        FOLLOW_access_or_restriction_in_access_or_restriction_list1416 = new BitSet(new long[]{2199023255570L});
        FOLLOW_FIELD_DIRECTIVE_in_field1449 = new BitSet(new long[]{5180673390213597264L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_access_or_restriction_list_in_field1451 = new BitSet(new long[]{5180673390213597264L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_member_name_in_field1453 = new BitSet(new long[]{1048576L});
        FOLLOW_COLON_in_field1455 = new BitSet(new long[]{65792L, 0L, 0L, 1024L});
        FOLLOW_nonvoid_type_descriptor_in_field1457 = new BitSet(new long[]{68853694498L});
        FOLLOW_EQUAL_in_field1460 = new BitSet(new long[]{5180673957157771600L, 1883222383L, 6917529027641081856L, 14260031L});
        FOLLOW_literal_in_field1462 = new BitSet(new long[]{134217762L});
        FOLLOW_annotation_in_field1475 = new BitSet(new long[]{134217762L});
        FOLLOW_END_FIELD_DIRECTIVE_in_field1489 = new BitSet(new long[]{2L});
        FOLLOW_METHOD_DIRECTIVE_in_method1600 = new BitSet(new long[]{5180673390213597264L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_access_or_restriction_list_in_method1602 = new BitSet(new long[]{5180673390213597264L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_member_name_in_method1604 = new BitSet(new long[]{0L, 0L, 0L, 32L});
        FOLLOW_method_prototype_in_method1606 = new BitSet(new long[]{-17557019926368L, 2147483647L, 2017612633061982208L, 420032L});
        FOLLOW_statements_and_directives_in_method1608 = new BitSet(new long[]{536870912L});
        FOLLOW_END_METHOD_DIRECTIVE_in_method1614 = new BitSet(new long[]{2L});
        FOLLOW_ordered_method_item_in_statements_and_directives1659 = new BitSet(new long[]{-17557556797278L, 2147483647L, 2017612633061982208L, 420032L});
        FOLLOW_registers_directive_in_statements_and_directives1667 = new BitSet(new long[]{-17557556797278L, 2147483647L, 2017612633061982208L, 420032L});
        FOLLOW_catch_directive_in_statements_and_directives1675 = new BitSet(new long[]{-17557556797278L, 2147483647L, 2017612633061982208L, 420032L});
        FOLLOW_catchall_directive_in_statements_and_directives1683 = new BitSet(new long[]{-17557556797278L, 2147483647L, 2017612633061982208L, 420032L});
        FOLLOW_parameter_directive_in_statements_and_directives1691 = new BitSet(new long[]{-17557556797278L, 2147483647L, 2017612633061982208L, 420032L});
        FOLLOW_annotation_in_statements_and_directives1699 = new BitSet(new long[]{-17557556797278L, 2147483647L, 2017612633061982208L, 420032L});
        FOLLOW_label_in_ordered_method_item1784 = new BitSet(new long[]{2L});
        FOLLOW_instruction_in_ordered_method_item1790 = new BitSet(new long[]{2L});
        FOLLOW_debug_directive_in_ordered_method_item1796 = new BitSet(new long[]{2L});
        FOLLOW_REGISTERS_DIRECTIVE_in_registers_directive1816 = new BitSet(new long[]{36864L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_integral_literal_in_registers_directive1820 = new BitSet(new long[]{2L});
        FOLLOW_LOCALS_DIRECTIVE_in_registers_directive1840 = new BitSet(new long[]{36864L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_integral_literal_in_registers_directive1844 = new BitSet(new long[]{2L});
        FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id1876 = new BitSet(new long[]{2L, 0L, 0L, 256L});
        FOLLOW_SIMPLE_NAME_in_simple_name1889 = new BitSet(new long[]{2L});
        FOLLOW_ACCESS_SPEC_in_simple_name1895 = new BitSet(new long[]{2L});
        FOLLOW_HIDDENAPI_RESTRICTION_in_simple_name1906 = new BitSet(new long[]{2L});
        FOLLOW_VERIFICATION_ERROR_TYPE_in_simple_name1917 = new BitSet(new long[]{2L});
        FOLLOW_POSITIVE_INTEGER_LITERAL_in_simple_name1928 = new BitSet(new long[]{2L});
        FOLLOW_NEGATIVE_INTEGER_LITERAL_in_simple_name1939 = new BitSet(new long[]{2L});
        FOLLOW_FLOAT_LITERAL_OR_ID_in_simple_name1950 = new BitSet(new long[]{2L});
        FOLLOW_DOUBLE_LITERAL_OR_ID_in_simple_name1961 = new BitSet(new long[]{2L});
        FOLLOW_BOOL_LITERAL_in_simple_name1972 = new BitSet(new long[]{2L});
        FOLLOW_NULL_LITERAL_in_simple_name1983 = new BitSet(new long[]{2L});
        FOLLOW_REGISTER_in_simple_name1994 = new BitSet(new long[]{2L});
        FOLLOW_param_list_or_id_in_simple_name2005 = new BitSet(new long[]{2L});
        FOLLOW_PRIMITIVE_TYPE_in_simple_name2015 = new BitSet(new long[]{2L});
        FOLLOW_VOID_TYPE_in_simple_name2026 = new BitSet(new long[]{2L});
        FOLLOW_ANNOTATION_VISIBILITY_in_simple_name2037 = new BitSet(new long[]{2L});
        FOLLOW_METHOD_HANDLE_TYPE_FIELD_in_simple_name2048 = new BitSet(new long[]{2L});
        FOLLOW_METHOD_HANDLE_TYPE_METHOD_in_simple_name2054 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT10t_in_simple_name2060 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT10x_in_simple_name2071 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_simple_name2082 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT11x_in_simple_name2093 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_simple_name2104 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_simple_name2115 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_simple_name2126 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21c_METHOD_HANDLE_in_simple_name2137 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21c_METHOD_TYPE_in_simple_name2148 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_simple_name2159 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_simple_name2170 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21t_in_simple_name2181 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_simple_name2192 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_simple_name2203 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_simple_name2214 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_simple_name2225 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_simple_name2236 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22t_in_simple_name2247 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT23x_in_simple_name2258 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_simple_name2269 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT31t_in_simple_name2280 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35c_CALL_SITE_in_simple_name2291 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_simple_name2302 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_simple_name2313 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE_in_simple_name2324 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_simple_name2335 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_simple_name2346 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_simple_name2357 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_simple_name2368 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_simple_name2379 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT51l_in_simple_name2390 = new BitSet(new long[]{2L});
        FOLLOW_simple_name_in_member_name2405 = new BitSet(new long[]{2L});
        FOLLOW_MEMBER_NAME_in_member_name2411 = new BitSet(new long[]{2L});
        FOLLOW_OPEN_PAREN_in_method_prototype2426 = new BitSet(new long[]{590080L, 0L, 0L, 1280L});
        FOLLOW_param_list_in_method_prototype2428 = new BitSet(new long[]{524288L});
        FOLLOW_CLOSE_PAREN_in_method_prototype2430 = new BitSet(new long[]{65792L, 0L, 0L, 8389632L});
        FOLLOW_type_descriptor_in_method_prototype2432 = new BitSet(new long[]{2L});
        FOLLOW_PARAM_LIST_OR_ID_PRIMITIVE_TYPE_in_param_list_or_id_primitive_type2462 = new BitSet(new long[]{2L});
        FOLLOW_param_list_or_id_primitive_type_in_param_list2477 = new BitSet(new long[]{2L, 0L, 0L, 256L});
        FOLLOW_nonvoid_type_descriptor_in_param_list2484 = new BitSet(new long[]{65794L, 0L, 0L, 1024L});
        FOLLOW_ARRAY_TYPE_PREFIX_in_array_descriptor2495 = new BitSet(new long[]{65536L, 0L, 0L, 1024L});
        FOLLOW_set_in_array_descriptor2497 = new BitSet(new long[]{2L});
        FOLLOW_VOID_TYPE_in_type_descriptor2513 = new BitSet(new long[]{2L});
        FOLLOW_PRIMITIVE_TYPE_in_type_descriptor2519 = new BitSet(new long[]{2L});
        FOLLOW_CLASS_DESCRIPTOR_in_type_descriptor2525 = new BitSet(new long[]{2L});
        FOLLOW_array_descriptor_in_type_descriptor2531 = new BitSet(new long[]{2L});
        FOLLOW_PRIMITIVE_TYPE_in_nonvoid_type_descriptor2541 = new BitSet(new long[]{2L});
        FOLLOW_CLASS_DESCRIPTOR_in_nonvoid_type_descriptor2547 = new BitSet(new long[]{2L});
        FOLLOW_array_descriptor_in_nonvoid_type_descriptor2553 = new BitSet(new long[]{2L});
        FOLLOW_CLASS_DESCRIPTOR_in_reference_type_descriptor2563 = new BitSet(new long[]{2L});
        FOLLOW_array_descriptor_in_reference_type_descriptor2569 = new BitSet(new long[]{2L});
        FOLLOW_POSITIVE_INTEGER_LITERAL_in_integer_literal2579 = new BitSet(new long[]{2L});
        FOLLOW_NEGATIVE_INTEGER_LITERAL_in_integer_literal2590 = new BitSet(new long[]{2L});
        FOLLOW_FLOAT_LITERAL_OR_ID_in_float_literal2605 = new BitSet(new long[]{2L});
        FOLLOW_FLOAT_LITERAL_in_float_literal2616 = new BitSet(new long[]{2L});
        FOLLOW_DOUBLE_LITERAL_OR_ID_in_double_literal2626 = new BitSet(new long[]{2L});
        FOLLOW_DOUBLE_LITERAL_in_double_literal2637 = new BitSet(new long[]{2L});
        FOLLOW_LONG_LITERAL_in_literal2647 = new BitSet(new long[]{2L});
        FOLLOW_integer_literal_in_literal2653 = new BitSet(new long[]{2L});
        FOLLOW_SHORT_LITERAL_in_literal2659 = new BitSet(new long[]{2L});
        FOLLOW_BYTE_LITERAL_in_literal2665 = new BitSet(new long[]{2L});
        FOLLOW_float_literal_in_literal2671 = new BitSet(new long[]{2L});
        FOLLOW_double_literal_in_literal2677 = new BitSet(new long[]{2L});
        FOLLOW_CHAR_LITERAL_in_literal2683 = new BitSet(new long[]{2L});
        FOLLOW_STRING_LITERAL_in_literal2689 = new BitSet(new long[]{2L});
        FOLLOW_BOOL_LITERAL_in_literal2695 = new BitSet(new long[]{2L});
        FOLLOW_NULL_LITERAL_in_literal2701 = new BitSet(new long[]{2L});
        FOLLOW_array_literal_in_literal2707 = new BitSet(new long[]{2L});
        FOLLOW_subannotation_in_literal2713 = new BitSet(new long[]{2L});
        FOLLOW_type_field_method_literal_in_literal2719 = new BitSet(new long[]{2L});
        FOLLOW_enum_literal_in_literal2725 = new BitSet(new long[]{2L});
        FOLLOW_method_handle_literal_in_literal2731 = new BitSet(new long[]{2L});
        FOLLOW_method_prototype_in_literal2737 = new BitSet(new long[]{2L});
        FOLLOW_integer_literal_in_parsed_integer_literal2750 = new BitSet(new long[]{2L});
        FOLLOW_LONG_LITERAL_in_integral_literal2762 = new BitSet(new long[]{2L});
        FOLLOW_integer_literal_in_integral_literal2768 = new BitSet(new long[]{2L});
        FOLLOW_SHORT_LITERAL_in_integral_literal2774 = new BitSet(new long[]{2L});
        FOLLOW_CHAR_LITERAL_in_integral_literal2780 = new BitSet(new long[]{2L});
        FOLLOW_BYTE_LITERAL_in_integral_literal2786 = new BitSet(new long[]{2L});
        FOLLOW_LONG_LITERAL_in_fixed_32bit_literal2796 = new BitSet(new long[]{2L});
        FOLLOW_integer_literal_in_fixed_32bit_literal2802 = new BitSet(new long[]{2L});
        FOLLOW_SHORT_LITERAL_in_fixed_32bit_literal2808 = new BitSet(new long[]{2L});
        FOLLOW_BYTE_LITERAL_in_fixed_32bit_literal2814 = new BitSet(new long[]{2L});
        FOLLOW_float_literal_in_fixed_32bit_literal2820 = new BitSet(new long[]{2L});
        FOLLOW_CHAR_LITERAL_in_fixed_32bit_literal2826 = new BitSet(new long[]{2L});
        FOLLOW_BOOL_LITERAL_in_fixed_32bit_literal2832 = new BitSet(new long[]{2L});
        FOLLOW_integer_literal_in_fixed_literal2842 = new BitSet(new long[]{2L});
        FOLLOW_LONG_LITERAL_in_fixed_literal2848 = new BitSet(new long[]{2L});
        FOLLOW_SHORT_LITERAL_in_fixed_literal2854 = new BitSet(new long[]{2L});
        FOLLOW_BYTE_LITERAL_in_fixed_literal2860 = new BitSet(new long[]{2L});
        FOLLOW_float_literal_in_fixed_literal2866 = new BitSet(new long[]{2L});
        FOLLOW_double_literal_in_fixed_literal2872 = new BitSet(new long[]{2L});
        FOLLOW_CHAR_LITERAL_in_fixed_literal2878 = new BitSet(new long[]{2L});
        FOLLOW_BOOL_LITERAL_in_fixed_literal2884 = new BitSet(new long[]{2L});
        FOLLOW_OPEN_BRACE_in_array_literal2894 = new BitSet(new long[]{5180673957158033744L, 1883222383L, 6917529027641081856L, 14260031L});
        FOLLOW_literal_in_array_literal2897 = new BitSet(new long[]{2359296L});
        FOLLOW_COMMA_in_array_literal2900 = new BitSet(new long[]{5180673957157771600L, 1883222383L, 6917529027641081856L, 14260031L});
        FOLLOW_literal_in_array_literal2902 = new BitSet(new long[]{2359296L});
        FOLLOW_CLOSE_BRACE_in_array_literal2910 = new BitSet(new long[]{2L});
        FOLLOW_simple_name_in_annotation_element2934 = new BitSet(new long[]{68719476736L});
        FOLLOW_EQUAL_in_annotation_element2936 = new BitSet(new long[]{5180673957157771600L, 1883222383L, 6917529027641081856L, 14260031L});
        FOLLOW_literal_in_annotation_element2938 = new BitSet(new long[]{2L});
        FOLLOW_ANNOTATION_DIRECTIVE_in_annotation2963 = new BitSet(new long[]{64L});
        FOLLOW_ANNOTATION_VISIBILITY_in_annotation2965 = new BitSet(new long[]{65536L});
        FOLLOW_CLASS_DESCRIPTOR_in_annotation2967 = new BitSet(new long[]{5180673390247151696L, 1883222383L, 0L, 12654351L});
        FOLLOW_annotation_element_in_annotation2973 = new BitSet(new long[]{5180673390247151696L, 1883222383L, 0L, 12654351L});
        FOLLOW_END_ANNOTATION_DIRECTIVE_in_annotation2976 = new BitSet(new long[]{2L});
        FOLLOW_SUBANNOTATION_DIRECTIVE_in_subannotation3009 = new BitSet(new long[]{65536L});
        FOLLOW_CLASS_DESCRIPTOR_in_subannotation3011 = new BitSet(new long[]{5180673398803531856L, 1883222383L, 0L, 12654351L});
        FOLLOW_annotation_element_in_subannotation3013 = new BitSet(new long[]{5180673398803531856L, 1883222383L, 0L, 12654351L});
        FOLLOW_END_SUBANNOTATION_DIRECTIVE_in_subannotation3016 = new BitSet(new long[]{2L});
        FOLLOW_ENUM_DIRECTIVE_in_enum_literal3043 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_field_reference_in_enum_literal3045 = new BitSet(new long[]{2L});
        FOLLOW_reference_type_descriptor_in_type_field_method_literal3065 = new BitSet(new long[]{2L});
        FOLLOW_reference_type_descriptor_in_type_field_method_literal3074 = new BitSet(new long[]{512L});
        FOLLOW_ARROW_in_type_field_method_literal3076 = new BitSet(new long[]{5180673390213597264L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_member_name_in_type_field_method_literal3088 = new BitSet(new long[]{1048576L});
        FOLLOW_COLON_in_type_field_method_literal3090 = new BitSet(new long[]{65792L, 0L, 0L, 1024L});
        FOLLOW_nonvoid_type_descriptor_in_type_field_method_literal3092 = new BitSet(new long[]{2L});
        FOLLOW_member_name_in_type_field_method_literal3115 = new BitSet(new long[]{0L, 0L, 0L, 32L});
        FOLLOW_method_prototype_in_type_field_method_literal3117 = new BitSet(new long[]{2L});
        FOLLOW_PRIMITIVE_TYPE_in_type_field_method_literal3150 = new BitSet(new long[]{2L});
        FOLLOW_VOID_TYPE_in_type_field_method_literal3156 = new BitSet(new long[]{2L});
        FOLLOW_simple_name_in_call_site_reference3166 = new BitSet(new long[]{0L, 0L, 0L, 32L});
        FOLLOW_OPEN_PAREN_in_call_site_reference3168 = new BitSet(new long[]{0L, 0L, 0L, 524288L});
        FOLLOW_STRING_LITERAL_in_call_site_reference3170 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_call_site_reference3172 = new BitSet(new long[]{0L, 0L, 0L, 32L});
        FOLLOW_method_prototype_in_call_site_reference3174 = new BitSet(new long[]{2621440L});
        FOLLOW_COMMA_in_call_site_reference3177 = new BitSet(new long[]{5180673957157771600L, 1883222383L, 6917529027641081856L, 14260031L});
        FOLLOW_literal_in_call_site_reference3179 = new BitSet(new long[]{2621440L});
        FOLLOW_CLOSE_PAREN_in_call_site_reference3183 = new BitSet(new long[]{1024L});
        FOLLOW_AT_in_call_site_reference3185 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_method_reference_in_call_site_reference3187 = new BitSet(new long[]{2L});
        FOLLOW_METHOD_HANDLE_TYPE_FIELD_in_method_handle_reference3231 = new BitSet(new long[]{1024L});
        FOLLOW_AT_in_method_handle_reference3233 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_field_reference_in_method_handle_reference3235 = new BitSet(new long[]{2L});
        FOLLOW_METHOD_HANDLE_TYPE_METHOD_in_method_handle_reference3247 = new BitSet(new long[]{1024L});
        FOLLOW_AT_in_method_handle_reference3249 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_method_reference_in_method_handle_reference3251 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE_in_method_handle_reference3263 = new BitSet(new long[]{1024L});
        FOLLOW_AT_in_method_handle_reference3265 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_method_reference_in_method_handle_reference3267 = new BitSet(new long[]{2L});
        FOLLOW_method_handle_reference_in_method_handle_literal3283 = new BitSet(new long[]{2L});
        FOLLOW_reference_type_descriptor_in_method_reference3304 = new BitSet(new long[]{512L});
        FOLLOW_ARROW_in_method_reference3306 = new BitSet(new long[]{5180673390213597264L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_member_name_in_method_reference3310 = new BitSet(new long[]{0L, 0L, 0L, 32L});
        FOLLOW_method_prototype_in_method_reference3312 = new BitSet(new long[]{2L});
        FOLLOW_reference_type_descriptor_in_field_reference3334 = new BitSet(new long[]{512L});
        FOLLOW_ARROW_in_field_reference3336 = new BitSet(new long[]{5180673390213597264L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_member_name_in_field_reference3340 = new BitSet(new long[]{1048576L});
        FOLLOW_COLON_in_field_reference3342 = new BitSet(new long[]{65792L, 0L, 0L, 1024L});
        FOLLOW_nonvoid_type_descriptor_in_field_reference3344 = new BitSet(new long[]{2L});
        FOLLOW_COLON_in_label3365 = new BitSet(new long[]{5180673390213597264L, 1883222383L, 0L, 12654351L});
        FOLLOW_simple_name_in_label3367 = new BitSet(new long[]{2L});
        FOLLOW_COLON_in_label_ref3386 = new BitSet(new long[]{5180673390213597264L, 1883222383L, 0L, 12654351L});
        FOLLOW_simple_name_in_label_ref3388 = new BitSet(new long[]{2L});
        FOLLOW_REGISTER_in_register_list3402 = new BitSet(new long[]{2097154L});
        FOLLOW_COMMA_in_register_list3405 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_register_list3407 = new BitSet(new long[]{2097154L});
        FOLLOW_REGISTER_in_register_range3442 = new BitSet(new long[]{4194306L});
        FOLLOW_DOTDOT_in_register_range3445 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_register_range3449 = new BitSet(new long[]{2L});
        FOLLOW_CLASS_DESCRIPTOR_in_verification_error_reference3478 = new BitSet(new long[]{2L});
        FOLLOW_field_reference_in_verification_error_reference3482 = new BitSet(new long[]{2L});
        FOLLOW_method_reference_in_verification_error_reference3486 = new BitSet(new long[]{2L});
        FOLLOW_CATCH_DIRECTIVE_in_catch_directive3496 = new BitSet(new long[]{65792L, 0L, 0L, 1024L});
        FOLLOW_nonvoid_type_descriptor_in_catch_directive3498 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_catch_directive3500 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_catch_directive3504 = new BitSet(new long[]{4194304L});
        FOLLOW_DOTDOT_in_catch_directive3506 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_catch_directive3510 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_catch_directive3512 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_catch_directive3516 = new BitSet(new long[]{2L});
        FOLLOW_CATCHALL_DIRECTIVE_in_catchall_directive3548 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_catchall_directive3550 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_catchall_directive3554 = new BitSet(new long[]{4194304L});
        FOLLOW_DOTDOT_in_catchall_directive3556 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_catchall_directive3560 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_catchall_directive3562 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_catchall_directive3566 = new BitSet(new long[]{2L});
        FOLLOW_PARAMETER_DIRECTIVE_in_parameter_directive3605 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_parameter_directive3607 = new BitSet(new long[]{2149580834L});
        FOLLOW_COMMA_in_parameter_directive3610 = new BitSet(new long[]{0L, 0L, 0L, 524288L});
        FOLLOW_STRING_LITERAL_in_parameter_directive3612 = new BitSet(new long[]{2147483682L});
        FOLLOW_annotation_in_parameter_directive3623 = new BitSet(new long[]{2147483682L});
        FOLLOW_END_PARAMETER_DIRECTIVE_in_parameter_directive3636 = new BitSet(new long[]{2L});
        FOLLOW_line_directive_in_debug_directive3709 = new BitSet(new long[]{2L});
        FOLLOW_local_directive_in_debug_directive3715 = new BitSet(new long[]{2L});
        FOLLOW_end_local_directive_in_debug_directive3721 = new BitSet(new long[]{2L});
        FOLLOW_restart_local_directive_in_debug_directive3727 = new BitSet(new long[]{2L});
        FOLLOW_prologue_directive_in_debug_directive3733 = new BitSet(new long[]{2L});
        FOLLOW_epilogue_directive_in_debug_directive3739 = new BitSet(new long[]{2L});
        FOLLOW_source_directive_in_debug_directive3745 = new BitSet(new long[]{2L});
        FOLLOW_LINE_DIRECTIVE_in_line_directive3755 = new BitSet(new long[]{36864L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_integral_literal_in_line_directive3757 = new BitSet(new long[]{2L});
        FOLLOW_LOCAL_DIRECTIVE_in_local_directive3780 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_local_directive3782 = new BitSet(new long[]{2097154L});
        FOLLOW_COMMA_in_local_directive3785 = new BitSet(new long[]{0L, 0L, 0L, 524296L});
        FOLLOW_NULL_LITERAL_in_local_directive3788 = new BitSet(new long[]{1048576L});
        FOLLOW_STRING_LITERAL_in_local_directive3794 = new BitSet(new long[]{1048576L});
        FOLLOW_COLON_in_local_directive3797 = new BitSet(new long[]{65792L, 0L, 0L, 8389632L});
        FOLLOW_VOID_TYPE_in_local_directive3800 = new BitSet(new long[]{2097154L});
        FOLLOW_nonvoid_type_descriptor_in_local_directive3804 = new BitSet(new long[]{2097154L});
        FOLLOW_COMMA_in_local_directive3838 = new BitSet(new long[]{0L, 0L, 0L, 524288L});
        FOLLOW_STRING_LITERAL_in_local_directive3842 = new BitSet(new long[]{2L});
        FOLLOW_END_LOCAL_DIRECTIVE_in_end_local_directive3884 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_end_local_directive3886 = new BitSet(new long[]{2L});
        FOLLOW_RESTART_LOCAL_DIRECTIVE_in_restart_local_directive3909 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_restart_local_directive3911 = new BitSet(new long[]{2L});
        FOLLOW_PROLOGUE_DIRECTIVE_in_prologue_directive3934 = new BitSet(new long[]{2L});
        FOLLOW_EPILOGUE_DIRECTIVE_in_epilogue_directive3955 = new BitSet(new long[]{2L});
        FOLLOW_SOURCE_DIRECTIVE_in_source_directive3976 = new BitSet(new long[]{2L, 0L, 0L, 524288L});
        FOLLOW_STRING_LITERAL_in_source_directive3978 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT12x_in_instruction_format12x4003 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT12x_OR_ID_in_instruction_format12x4009 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22s_in_instruction_format22s4024 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22s_OR_ID_in_instruction_format22s4030 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT31i_in_instruction_format31i4045 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT31i_OR_ID_in_instruction_format31i4051 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35c_METHOD_in_instruction_format35c_method4068 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35c_METHOD_OR_METHOD_HANDLE_TYPE_in_instruction_format35c_method4074 = new BitSet(new long[]{2L});
        FOLLOW_insn_format10t_in_instruction4089 = new BitSet(new long[]{2L});
        FOLLOW_insn_format10x_in_instruction4095 = new BitSet(new long[]{2L});
        FOLLOW_insn_format10x_odex_in_instruction4101 = new BitSet(new long[]{2L});
        FOLLOW_insn_format11n_in_instruction4107 = new BitSet(new long[]{2L});
        FOLLOW_insn_format11x_in_instruction4113 = new BitSet(new long[]{2L});
        FOLLOW_insn_format12x_in_instruction4119 = new BitSet(new long[]{2L});
        FOLLOW_insn_format20bc_in_instruction4125 = new BitSet(new long[]{2L});
        FOLLOW_insn_format20t_in_instruction4131 = new BitSet(new long[]{2L});
        FOLLOW_insn_format21c_field_in_instruction4137 = new BitSet(new long[]{2L});
        FOLLOW_insn_format21c_field_odex_in_instruction4143 = new BitSet(new long[]{2L});
        FOLLOW_insn_format21c_method_handle_in_instruction4149 = new BitSet(new long[]{2L});
        FOLLOW_insn_format21c_method_type_in_instruction4155 = new BitSet(new long[]{2L});
        FOLLOW_insn_format21c_string_in_instruction4161 = new BitSet(new long[]{2L});
        FOLLOW_insn_format21c_type_in_instruction4167 = new BitSet(new long[]{2L});
        FOLLOW_insn_format21ih_in_instruction4173 = new BitSet(new long[]{2L});
        FOLLOW_insn_format21lh_in_instruction4179 = new BitSet(new long[]{2L});
        FOLLOW_insn_format21s_in_instruction4185 = new BitSet(new long[]{2L});
        FOLLOW_insn_format21t_in_instruction4191 = new BitSet(new long[]{2L});
        FOLLOW_insn_format22b_in_instruction4197 = new BitSet(new long[]{2L});
        FOLLOW_insn_format22c_field_in_instruction4203 = new BitSet(new long[]{2L});
        FOLLOW_insn_format22c_field_odex_in_instruction4209 = new BitSet(new long[]{2L});
        FOLLOW_insn_format22c_type_in_instruction4215 = new BitSet(new long[]{2L});
        FOLLOW_insn_format22cs_field_in_instruction4221 = new BitSet(new long[]{2L});
        FOLLOW_insn_format22s_in_instruction4227 = new BitSet(new long[]{2L});
        FOLLOW_insn_format22t_in_instruction4233 = new BitSet(new long[]{2L});
        FOLLOW_insn_format22x_in_instruction4239 = new BitSet(new long[]{2L});
        FOLLOW_insn_format23x_in_instruction4245 = new BitSet(new long[]{2L});
        FOLLOW_insn_format30t_in_instruction4251 = new BitSet(new long[]{2L});
        FOLLOW_insn_format31c_in_instruction4257 = new BitSet(new long[]{2L});
        FOLLOW_insn_format31i_in_instruction4263 = new BitSet(new long[]{2L});
        FOLLOW_insn_format31t_in_instruction4269 = new BitSet(new long[]{2L});
        FOLLOW_insn_format32x_in_instruction4275 = new BitSet(new long[]{2L});
        FOLLOW_insn_format35c_call_site_in_instruction4281 = new BitSet(new long[]{2L});
        FOLLOW_insn_format35c_method_in_instruction4287 = new BitSet(new long[]{2L});
        FOLLOW_insn_format35c_type_in_instruction4293 = new BitSet(new long[]{2L});
        FOLLOW_insn_format35c_method_odex_in_instruction4299 = new BitSet(new long[]{2L});
        FOLLOW_insn_format35mi_method_in_instruction4305 = new BitSet(new long[]{2L});
        FOLLOW_insn_format35ms_method_in_instruction4311 = new BitSet(new long[]{2L});
        FOLLOW_insn_format3rc_call_site_in_instruction4317 = new BitSet(new long[]{2L});
        FOLLOW_insn_format3rc_method_in_instruction4323 = new BitSet(new long[]{2L});
        FOLLOW_insn_format3rc_method_odex_in_instruction4329 = new BitSet(new long[]{2L});
        FOLLOW_insn_format3rc_type_in_instruction4335 = new BitSet(new long[]{2L});
        FOLLOW_insn_format3rmi_method_in_instruction4341 = new BitSet(new long[]{2L});
        FOLLOW_insn_format3rms_method_in_instruction4347 = new BitSet(new long[]{2L});
        FOLLOW_insn_format45cc_method_in_instruction4353 = new BitSet(new long[]{2L});
        FOLLOW_insn_format4rcc_method_in_instruction4359 = new BitSet(new long[]{2L});
        FOLLOW_insn_format51l_in_instruction4365 = new BitSet(new long[]{2L});
        FOLLOW_insn_array_data_directive_in_instruction4371 = new BitSet(new long[]{2L});
        FOLLOW_insn_packed_switch_directive_in_instruction4377 = new BitSet(new long[]{2L});
        FOLLOW_insn_sparse_switch_directive_in_instruction4383 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT10t_in_insn_format10t4403 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_insn_format10t4405 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT10x_in_insn_format10x4435 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT10x_ODEX_in_insn_format10x_odex4463 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT11n_in_insn_format11n4484 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format11n4486 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format11n4488 = new BitSet(new long[]{36864L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_integral_literal_in_insn_format11n4490 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT11x_in_insn_format11x4522 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format11x4524 = new BitSet(new long[]{2L});
        FOLLOW_instruction_format12x_in_insn_format12x4554 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format12x4556 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format12x4558 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format12x4560 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT20bc_in_insn_format20bc4592 = new BitSet(new long[]{0L, 0L, 0L, 4194304L});
        FOLLOW_VERIFICATION_ERROR_TYPE_in_insn_format20bc4594 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format20bc4596 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_verification_error_reference_in_insn_format20bc4598 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT20t_in_insn_format20t4635 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_insn_format20t4637 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21c_FIELD_in_insn_format21c_field4667 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format21c_field4669 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format21c_field4671 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_field_reference_in_insn_format21c_field4673 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21c_FIELD_ODEX_in_insn_format21c_field_odex4705 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format21c_field_odex4707 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format21c_field_odex4709 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_field_reference_in_insn_format21c_field_odex4711 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21c_METHOD_HANDLE_in_insn_format21c_method_handle4749 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format21c_method_handle4751 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format21c_method_handle4753 = new BitSet(new long[]{0L, 262144L, 0L, 3L});
        FOLLOW_method_handle_reference_in_insn_format21c_method_handle4755 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21c_METHOD_TYPE_in_insn_format21c_method_type4801 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format21c_method_type4803 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format21c_method_type4805 = new BitSet(new long[]{0L, 0L, 0L, 32L});
        FOLLOW_method_prototype_in_insn_format21c_method_type4807 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21c_STRING_in_insn_format21c_string4851 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format21c_string4853 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format21c_string4855 = new BitSet(new long[]{0L, 0L, 0L, 524288L});
        FOLLOW_STRING_LITERAL_in_insn_format21c_string4857 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21c_TYPE_in_insn_format21c_type4889 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format21c_type4891 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format21c_type4893 = new BitSet(new long[]{65792L, 0L, 0L, 1024L});
        FOLLOW_nonvoid_type_descriptor_in_insn_format21c_type4895 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21ih_in_insn_format21ih4927 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format21ih4929 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format21ih4931 = new BitSet(new long[]{1649267480576L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_fixed_32bit_literal_in_insn_format21ih4933 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21lh_in_insn_format21lh4965 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format21lh4967 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format21lh4969 = new BitSet(new long[]{1649267480576L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_fixed_32bit_literal_in_insn_format21lh4971 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21s_in_insn_format21s5003 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format21s5005 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format21s5007 = new BitSet(new long[]{36864L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_integral_literal_in_insn_format21s5009 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT21t_in_insn_format21t5041 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format21t5043 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format21t5045 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_insn_format21t5047 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22b_in_insn_format22b5079 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22b5081 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22b5083 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22b5085 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22b5087 = new BitSet(new long[]{36864L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_integral_literal_in_insn_format22b5089 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22c_FIELD_in_insn_format22c_field5123 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22c_field5125 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22c_field5127 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22c_field5129 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22c_field5131 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_field_reference_in_insn_format22c_field5133 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22c_FIELD_ODEX_in_insn_format22c_field_odex5167 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22c_field_odex5169 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22c_field_odex5171 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22c_field_odex5173 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22c_field_odex5175 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_field_reference_in_insn_format22c_field_odex5177 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22c_TYPE_in_insn_format22c_type5217 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22c_type5219 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22c_type5221 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22c_type5223 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22c_type5225 = new BitSet(new long[]{65792L, 0L, 0L, 1024L});
        FOLLOW_nonvoid_type_descriptor_in_insn_format22c_type5227 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22cs_FIELD_in_insn_format22cs_field5261 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22cs_field5263 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22cs_field5265 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22cs_field5267 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22cs_field5269 = new BitSet(new long[]{274877906944L});
        FOLLOW_FIELD_OFFSET_in_insn_format22cs_field5271 = new BitSet(new long[]{2L});
        FOLLOW_instruction_format22s_in_insn_format22s5292 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22s5294 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22s5296 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22s5298 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22s5300 = new BitSet(new long[]{36864L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_integral_literal_in_insn_format22s5302 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22t_in_insn_format22t5336 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22t5338 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22t5340 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22t5342 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22t5344 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_insn_format22t5346 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT22x_in_insn_format22x5380 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22x5382 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format22x5384 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format22x5386 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT23x_in_insn_format23x5418 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format23x5420 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format23x5422 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format23x5424 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format23x5426 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format23x5428 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT30t_in_insn_format30t5462 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_insn_format30t5464 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT31c_in_insn_format31c5494 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format31c5496 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format31c5498 = new BitSet(new long[]{0L, 0L, 0L, 524288L});
        FOLLOW_STRING_LITERAL_in_insn_format31c5500 = new BitSet(new long[]{2L});
        FOLLOW_instruction_format31i_in_insn_format31i5531 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format31i5533 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format31i5535 = new BitSet(new long[]{1649267480576L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_fixed_32bit_literal_in_insn_format31i5537 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT31t_in_insn_format31t5569 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format31t5571 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format31t5573 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_insn_format31t5575 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT32x_in_insn_format32x5607 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format32x5609 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format32x5611 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format32x5613 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35c_CALL_SITE_in_insn_format35c_call_site5650 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format35c_call_site5652 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_list_in_insn_format35c_call_site5654 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format35c_call_site5656 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format35c_call_site5658 = new BitSet(new long[]{5180673390213597264L, 1883222383L, 0L, 12654351L});
        FOLLOW_call_site_reference_in_insn_format35c_call_site5660 = new BitSet(new long[]{2L});
        FOLLOW_instruction_format35c_method_in_insn_format35c_method5692 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format35c_method5694 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_list_in_insn_format35c_method5696 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format35c_method5698 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format35c_method5700 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_method_reference_in_insn_format35c_method5702 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35c_TYPE_in_insn_format35c_type5734 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format35c_type5736 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_list_in_insn_format35c_type5738 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format35c_type5740 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format35c_type5742 = new BitSet(new long[]{65792L, 0L, 0L, 1024L});
        FOLLOW_nonvoid_type_descriptor_in_insn_format35c_type5744 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35c_METHOD_ODEX_in_insn_format35c_method_odex5776 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format35c_method_odex5778 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_list_in_insn_format35c_method_odex5780 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format35c_method_odex5782 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format35c_method_odex5784 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_method_reference_in_insn_format35c_method_odex5786 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35mi_METHOD_in_insn_format35mi_method5807 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format35mi_method5809 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_list_in_insn_format35mi_method5811 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format35mi_method5813 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format35mi_method5815 = new BitSet(new long[]{8796093022208L});
        FOLLOW_INLINE_INDEX_in_insn_format35mi_method5817 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT35ms_METHOD_in_insn_format35ms_method5838 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format35ms_method5840 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_list_in_insn_format35ms_method5842 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format35ms_method5844 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format35ms_method5846 = new BitSet(new long[]{0L, 0L, 0L, 16777216L});
        FOLLOW_VTABLE_INDEX_in_insn_format35ms_method5848 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT3rc_CALL_SITE_in_insn_format3rc_call_site5874 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format3rc_call_site5876 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_range_in_insn_format3rc_call_site5878 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format3rc_call_site5880 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format3rc_call_site5882 = new BitSet(new long[]{5180673390213597264L, 1883222383L, 0L, 12654351L});
        FOLLOW_call_site_reference_in_insn_format3rc_call_site5884 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_in_insn_format3rc_method5916 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format3rc_method5918 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_range_in_insn_format3rc_method5920 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format3rc_method5922 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format3rc_method5924 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_method_reference_in_insn_format3rc_method5926 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT3rc_METHOD_ODEX_in_insn_format3rc_method_odex5958 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format3rc_method_odex5960 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_list_in_insn_format3rc_method_odex5962 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format3rc_method_odex5964 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format3rc_method_odex5966 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_method_reference_in_insn_format3rc_method_odex5968 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT3rc_TYPE_in_insn_format3rc_type5989 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format3rc_type5991 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_range_in_insn_format3rc_type5993 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format3rc_type5995 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format3rc_type5997 = new BitSet(new long[]{65792L, 0L, 0L, 1024L});
        FOLLOW_nonvoid_type_descriptor_in_insn_format3rc_type5999 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT3rmi_METHOD_in_insn_format3rmi_method6031 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format3rmi_method6033 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_range_in_insn_format3rmi_method6035 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format3rmi_method6037 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format3rmi_method6039 = new BitSet(new long[]{8796093022208L});
        FOLLOW_INLINE_INDEX_in_insn_format3rmi_method6041 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT3rms_METHOD_in_insn_format3rms_method6062 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format3rms_method6064 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_range_in_insn_format3rms_method6066 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format3rms_method6068 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format3rms_method6070 = new BitSet(new long[]{0L, 0L, 0L, 16777216L});
        FOLLOW_VTABLE_INDEX_in_insn_format3rms_method6072 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT45cc_METHOD_in_insn_format45cc_method6093 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format45cc_method6095 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_list_in_insn_format45cc_method6097 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format45cc_method6099 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format45cc_method6101 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_method_reference_in_insn_format45cc_method6103 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format45cc_method6105 = new BitSet(new long[]{0L, 0L, 0L, 32L});
        FOLLOW_method_prototype_in_insn_format45cc_method6107 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT4rcc_METHOD_in_insn_format4rcc_method6141 = new BitSet(new long[]{0L, 0L, 0L, 16L});
        FOLLOW_OPEN_BRACE_in_insn_format4rcc_method6143 = new BitSet(new long[]{262144L, 0L, 0L, 4096L});
        FOLLOW_register_range_in_insn_format4rcc_method6145 = new BitSet(new long[]{262144L});
        FOLLOW_CLOSE_BRACE_in_insn_format4rcc_method6147 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format4rcc_method6149 = new BitSet(new long[]{5180673390213663056L, 1883222383L, 4611686018427387904L, 12654351L});
        FOLLOW_method_reference_in_insn_format4rcc_method6151 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format4rcc_method6153 = new BitSet(new long[]{0L, 0L, 0L, 32L});
        FOLLOW_method_prototype_in_insn_format4rcc_method6155 = new BitSet(new long[]{2L});
        FOLLOW_INSTRUCTION_FORMAT51l_in_insn_format51l6189 = new BitSet(new long[]{0L, 0L, 0L, 4096L});
        FOLLOW_REGISTER_in_insn_format51l6191 = new BitSet(new long[]{2097152L});
        FOLLOW_COMMA_in_insn_format51l6193 = new BitSet(new long[]{1649292646400L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_fixed_literal_in_insn_format51l6195 = new BitSet(new long[]{2L});
        FOLLOW_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive6222 = new BitSet(new long[]{0L, 0L, 0L, 516L});
        FOLLOW_parsed_integer_literal_in_insn_array_data_directive6228 = new BitSet(new long[]{1649359755264L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_fixed_literal_in_insn_array_data_directive6240 = new BitSet(new long[]{1649359755264L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_END_ARRAY_DATA_DIRECTIVE_in_insn_array_data_directive6243 = new BitSet(new long[]{2L});
        FOLLOW_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive6289 = new BitSet(new long[]{1649267480576L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_fixed_32bit_literal_in_insn_packed_switch_directive6295 = new BitSet(new long[]{1074790400L});
        FOLLOW_label_ref_in_insn_packed_switch_directive6301 = new BitSet(new long[]{1074790400L});
        FOLLOW_END_PACKED_SWITCH_DIRECTIVE_in_insn_packed_switch_directive6308 = new BitSet(new long[]{2L});
        FOLLOW_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive6382 = new BitSet(new long[]{1653562447872L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_fixed_32bit_literal_in_insn_sparse_switch_directive6389 = new BitSet(new long[]{512L});
        FOLLOW_ARROW_in_insn_sparse_switch_directive6391 = new BitSet(new long[]{1048576L});
        FOLLOW_label_ref_in_insn_sparse_switch_directive6393 = new BitSet(new long[]{1653562447872L, 0L, 2305843009213693952L, 33284L});
        FOLLOW_END_SPARSE_SWITCH_DIRECTIVE_in_insn_sparse_switch_directive6401 = new BitSet(new long[]{2L});
    }

    protected class DFA43 extends DFA {
        public DFA43(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 43;
            this.eot = smaliParser.DFA43_eot;
            this.eof = smaliParser.DFA43_eof;
            this.min = smaliParser.DFA43_min;
            this.max = smaliParser.DFA43_max;
            this.accept = smaliParser.DFA43_accept;
            this.special = smaliParser.DFA43_special;
            this.transition = smaliParser.DFA43_transition;
        }

        public String getDescription() {
            return "()* loopback of 785:5: ({...}? annotation )*";
        }

        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TokenStream input = (TokenStream)_input;
            int _s = s;
            switch (s) {
                case 0:
                    int LA43_70 = input.LA(1);
                    int index43_70 = input.index();
                    input.rewind();
                    int sx = 0;
                    byte sxx;
                    if (input.LA(1) == 5) {
                        sxx = 71;
                    } else {
                        sxx = 1;
                    }

                    input.seek(index43_70);
                    if (sxx >= 0) {
                        return sxx;
                    }
                default:
                    NoViableAltException nvae = new NoViableAltException(this.getDescription(), 43, _s, input);
                    this.error(nvae);
                    throw nvae;
            }
        }
    }

    protected class DFA41 extends DFA {
        public DFA41(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 41;
            this.eot = smaliParser.DFA41_eot;
            this.eof = smaliParser.DFA41_eof;
            this.min = smaliParser.DFA41_min;
            this.max = smaliParser.DFA41_max;
            this.accept = smaliParser.DFA41_accept;
            this.special = smaliParser.DFA41_special;
            this.transition = smaliParser.DFA41_transition;
        }

        public String getDescription() {
            return "767:1: verification_error_reference : ( CLASS_DESCRIPTOR | field_reference | method_reference );";
        }
    }

    protected class DFA31 extends DFA {
        public DFA31(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 31;
            this.eot = smaliParser.DFA31_eot;
            this.eof = smaliParser.DFA31_eof;
            this.min = smaliParser.DFA31_min;
            this.max = smaliParser.DFA31_max;
            this.accept = smaliParser.DFA31_accept;
            this.special = smaliParser.DFA31_special;
            this.transition = smaliParser.DFA31_transition;
        }

        public String getDescription() {
            return "725:7: ( member_name COLON nonvoid_type_descriptor -> ^( I_ENCODED_FIELD ( reference_type_descriptor )? member_name nonvoid_type_descriptor ) | member_name method_prototype -> ^( I_ENCODED_METHOD ( reference_type_descriptor )? member_name method_prototype ) )";
        }
    }

    public static class insn_sparse_switch_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_sparse_switch_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_packed_switch_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_packed_switch_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_array_data_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_array_data_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format51l_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format51l_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format4rcc_method_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format4rcc_method_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format45cc_method_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format45cc_method_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format3rms_method_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format3rms_method_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format3rmi_method_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format3rmi_method_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format3rc_type_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format3rc_type_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format3rc_method_odex_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format3rc_method_odex_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format3rc_method_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format3rc_method_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format3rc_call_site_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format3rc_call_site_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format35ms_method_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format35ms_method_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format35mi_method_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format35mi_method_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format35c_method_odex_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format35c_method_odex_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format35c_type_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format35c_type_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format35c_method_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format35c_method_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format35c_call_site_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format35c_call_site_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format32x_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format32x_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format31t_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format31t_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format31i_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format31i_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format31c_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format31c_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format30t_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format30t_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format23x_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format23x_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format22x_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format22x_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format22t_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format22t_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format22s_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format22s_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format22cs_field_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format22cs_field_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format22c_type_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format22c_type_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format22c_field_odex_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format22c_field_odex_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format22c_field_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format22c_field_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format22b_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format22b_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format21t_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format21t_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format21s_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format21s_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format21lh_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format21lh_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format21ih_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format21ih_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format21c_type_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format21c_type_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format21c_string_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format21c_string_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format21c_method_type_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format21c_method_type_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format21c_method_handle_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format21c_method_handle_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format21c_field_odex_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format21c_field_odex_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format21c_field_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format21c_field_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format20t_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format20t_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format20bc_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format20bc_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format12x_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format12x_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format11x_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format11x_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format11n_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format11n_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format10x_odex_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format10x_odex_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format10x_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format10x_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class insn_format10t_return extends ParserRuleReturnScope {
        CommonTree tree;

        public insn_format10t_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class instruction_return extends ParserRuleReturnScope {
        CommonTree tree;

        public instruction_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class instruction_format35c_method_return extends ParserRuleReturnScope {
        CommonTree tree;

        public instruction_format35c_method_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class instruction_format31i_return extends ParserRuleReturnScope {
        CommonTree tree;

        public instruction_format31i_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class instruction_format22s_return extends ParserRuleReturnScope {
        CommonTree tree;

        public instruction_format22s_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class instruction_format12x_return extends ParserRuleReturnScope {
        CommonTree tree;

        public instruction_format12x_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class source_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public source_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class epilogue_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public epilogue_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class prologue_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public prologue_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class restart_local_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public restart_local_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class end_local_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public end_local_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class local_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public local_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class line_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public line_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class debug_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public debug_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class parameter_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public parameter_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class catchall_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public catchall_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class catch_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public catch_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class verification_error_reference_return extends ParserRuleReturnScope {
        CommonTree tree;

        public verification_error_reference_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class register_range_return extends ParserRuleReturnScope {
        CommonTree tree;

        public register_range_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class register_list_return extends ParserRuleReturnScope {
        CommonTree tree;

        public register_list_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class label_ref_return extends ParserRuleReturnScope {
        CommonTree tree;

        public label_ref_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class label_return extends ParserRuleReturnScope {
        CommonTree tree;

        public label_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class field_reference_return extends ParserRuleReturnScope {
        CommonTree tree;

        public field_reference_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class method_reference_return extends ParserRuleReturnScope {
        CommonTree tree;

        public method_reference_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class method_handle_literal_return extends ParserRuleReturnScope {
        CommonTree tree;

        public method_handle_literal_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class method_handle_reference_return extends ParserRuleReturnScope {
        CommonTree tree;

        public method_handle_reference_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class call_site_reference_return extends ParserRuleReturnScope {
        CommonTree tree;

        public call_site_reference_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class type_field_method_literal_return extends ParserRuleReturnScope {
        CommonTree tree;

        public type_field_method_literal_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class enum_literal_return extends ParserRuleReturnScope {
        CommonTree tree;

        public enum_literal_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class subannotation_return extends ParserRuleReturnScope {
        CommonTree tree;

        public subannotation_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class annotation_return extends ParserRuleReturnScope {
        CommonTree tree;

        public annotation_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class annotation_element_return extends ParserRuleReturnScope {
        CommonTree tree;

        public annotation_element_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class array_literal_return extends ParserRuleReturnScope {
        CommonTree tree;

        public array_literal_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class fixed_literal_return extends ParserRuleReturnScope {
        CommonTree tree;

        public fixed_literal_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class fixed_32bit_literal_return extends ParserRuleReturnScope {
        CommonTree tree;

        public fixed_32bit_literal_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class integral_literal_return extends ParserRuleReturnScope {
        CommonTree tree;

        public integral_literal_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class parsed_integer_literal_return extends ParserRuleReturnScope {
        public int value;
        CommonTree tree;

        public parsed_integer_literal_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class literal_return extends ParserRuleReturnScope {
        CommonTree tree;

        public literal_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class double_literal_return extends ParserRuleReturnScope {
        CommonTree tree;

        public double_literal_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class float_literal_return extends ParserRuleReturnScope {
        CommonTree tree;

        public float_literal_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class integer_literal_return extends ParserRuleReturnScope {
        CommonTree tree;

        public integer_literal_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class reference_type_descriptor_return extends ParserRuleReturnScope {
        CommonTree tree;

        public reference_type_descriptor_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class nonvoid_type_descriptor_return extends ParserRuleReturnScope {
        CommonTree tree;

        public nonvoid_type_descriptor_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class type_descriptor_return extends ParserRuleReturnScope {
        CommonTree tree;

        public type_descriptor_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class array_descriptor_return extends ParserRuleReturnScope {
        CommonTree tree;

        public array_descriptor_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class param_list_return extends ParserRuleReturnScope {
        CommonTree tree;

        public param_list_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class param_list_or_id_primitive_type_return extends ParserRuleReturnScope {
        CommonTree tree;

        public param_list_or_id_primitive_type_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class method_prototype_return extends ParserRuleReturnScope {
        CommonTree tree;

        public method_prototype_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class member_name_return extends ParserRuleReturnScope {
        CommonTree tree;

        public member_name_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class simple_name_return extends ParserRuleReturnScope {
        CommonTree tree;

        public simple_name_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class param_list_or_id_return extends ParserRuleReturnScope {
        CommonTree tree;

        public param_list_or_id_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class registers_directive_return extends ParserRuleReturnScope {
        CommonTree tree;

        public registers_directive_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class ordered_method_item_return extends ParserRuleReturnScope {
        CommonTree tree;

        public ordered_method_item_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class statements_and_directives_return extends ParserRuleReturnScope {
        CommonTree tree;

        public statements_and_directives_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    protected static class statements_and_directives_scope {
        boolean hasRegistersDirective;
        List<CommonTree> methodAnnotations;

        protected statements_and_directives_scope() {
        }
    }

    public static class method_return extends ParserRuleReturnScope {
        CommonTree tree;

        public method_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class field_return extends ParserRuleReturnScope {
        CommonTree tree;

        public field_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class access_or_restriction_list_return extends ParserRuleReturnScope {
        CommonTree tree;

        public access_or_restriction_list_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class access_or_restriction_return extends ParserRuleReturnScope {
        CommonTree tree;

        public access_or_restriction_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class access_list_return extends ParserRuleReturnScope {
        CommonTree tree;

        public access_list_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class source_spec_return extends ParserRuleReturnScope {
        CommonTree tree;

        public source_spec_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class implements_spec_return extends ParserRuleReturnScope {
        CommonTree tree;

        public implements_spec_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class super_spec_return extends ParserRuleReturnScope {
        CommonTree tree;

        public super_spec_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class class_spec_return extends ParserRuleReturnScope {
        public String className;
        CommonTree tree;

        public class_spec_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    public static class smali_file_return extends ParserRuleReturnScope {
        CommonTree tree;

        public smali_file_return() {
        }

        public CommonTree getTree() {
            return this.tree;
        }
    }

    protected static class smali_file_scope {
        boolean hasClassSpec;
        boolean hasSuperSpec;
        boolean hasSourceSpec;
        List<CommonTree> classAnnotations;

        protected smali_file_scope() {
        }
    }
}
